主题:[讨论]怎样在一个回调函数中调用另一个回调函数?
灭绝死神
[专家分:40] 发布于 2007-10-08 22:50:00
怎样在一个回调函数中调用另一个回调函数?
回复列表 (共3个回复)
沙发
kefan [专家分:310] 发布于 2007-10-09 22:45:00
指的是在gui中编程吧?
板凳
灭绝死神 [专家分:40] 发布于 2007-10-10 08:46:00
是
3 楼
kefan [专家分:310] 发布于 2007-10-11 23:39:00
假设有两个按钮控件,他们的tag属性设置为pushbutton1,pushbutton2,他们的回调函数分别为;
pushbutton1_Callback(hObject, eventdata, handles)
pushbutton2_Callback(hObject, eventdata, handles)
要想在按钮1的回调函数中调用按钮2的回调函数,首先应该注意到gui中每个回调函数都有三个参数要传递,所以要调用按钮2的回调函数,首先要知道按钮2的回调函数需要什么样的参数,第一个参数hObject指的是 按钮2的对象句柄 对应就应该是 pushbutton2,所以 可以设 Hbt1=handles.pushbutton2,
两个回调函数的eventdata, handles参数都相同,所以不用改动
这样在按钮1的回调函数这样写就可以了:
Hbt1=handles.pushbutton2;
F=@pushbutton2_Callback; %获取按钮2回调函数的句柄
feval(F,Hbt1, eventdata, handles);%执行按钮2的回调函数,参数为Hbt1, eventdata, handles
即可实现对按钮2的回调函数的调用
我来回复