dxwwangyan 发表于 2006-4-6 17:08

[求助]关于回调函数传递参数的问题

<P>有两个M文件,a.mt和b.m,代码如下:<BR>a.m:<BR>global x1;<BR>clf reset % &lt;1&gt; <BR>set(gcf,'unit','normalized','position',);%设置图形窗大小 <BR>set(gcf,'defaultuicontrolunits','normalized'); <BR>set(gcf,'defaultuicontrolfontsize',11); <BR>set(gcf,'defaultuicontrolfontname','隶书'); <BR>set(gcf,'defaultuicontrolhorizontal','left'); <BR>set(gcf,'menubar','none'); %删除图形窗工具条 <BR>str='通过指令显示图的交互界面'; <BR>set(gcf,'name',str,'numbertitle','off'); %书写图形窗名 <BR>h_axes=axes('position',,'visible','off');%定义轴位框位置 <BR>uicontrol(gcf,'Style','text',... %制作静态文本框 <BR>'position',,... <BR>'String','gamma输入框'); </P>
<P>x1=imread('111.bmp');<BR>hedit=uicontrol(gcf,'Style','edit',... %制作可编辑文本框 &lt;14&gt; <BR>'position',);</P>
<P>hpush=uicontrol(gcf,'Style','push',... %制作与列表框配用的按键 &lt;24&gt; <BR>'position',,'string','Apply'); </P>
<P>set(hedit,'callback','bb(hedit)'); %编辑框输入引起回调 &lt;26&gt; <BR><BR><BR>b.m:<BR>function bb(hedit) <BR>global x1;<BR>ct=get(hedit,'string'); %获得输入的字符串函数 &lt;2&gt;<BR>string1= 'g=imadjust(x1,,[],';<BR>string2=');';<BR>user_entry=;<BR>if ~isempty(ct) %可编辑框输入非空时 &lt;5&gt; <BR>eval(user_entry) %运行从编辑文本框送入的指令 &lt;6&gt; <BR>end<BR>figure,imshow(g)<BR><BR>这样运行后显示正确,但是如果我将a.m的纯脚本改为函数就出错,即我在a.m的最前面加了function aa(),后面的代码不变,运行之后出现如下的错误:<BR>&gt;&gt; aa<BR>??? Undefined function or variable 'hedit'.</P>
<P>??? Error while evaluating uicontrol Callback.<BR><BR>请问这是怎么回事,谢谢!!</P>

happy 发表于 2006-4-6 20:19

回复:(dxwwangyan)[求助]关于回调函数传递参数的问...

我刚才运行了一下没什么毛病<BR>你试着将文件名和函数名改成一致看看

dxwwangyan 发表于 2006-4-7 12:04

回复:(dxwwangyan)[求助]关于回调函数传递参数的问...

<P>教授,我的文件名和函数名改为一样的了,a .m中加function a()后出错:<BR>??? Invalid handle object.</P>
<P>Error in ==&gt; bb at 3<BR>ct=get(hedit,'string'); %获得输入的字符串函数 &lt;2&gt;</P>
<P>??? Error while evaluating uicontrol Callback.<BR>还请教授指教,谢谢!</P>
页: [1]
查看完整版本: [求助]关于回调函数传递参数的问题