回 帖 发 新 帖 刷新版面

主题:[讨论]怎样在一个回调函数中调用另一个回调函数?

怎样在一个回调函数中调用另一个回调函数?

回复列表 (共3个回复)

沙发

指的是在gui中编程吧?

板凳

3 楼

假设有两个按钮控件,他们的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的回调函数的调用

我来回复

您尚未登录,请登录后再回复。点此登录或注册