2012-02-13 65 views
1

我想在另一個按鈕回調按鈕回調中的按鈕回調,但我有問題:調用另一個按鈕回調

這就是我要做的:

C_N_Callback(hObject,eventdata, handles) 

    RN_Callback(handles, [], []); 

我試過,但給了這個錯誤:在第一步

Attempt to reference field of non-structure array.

裏面RN_Callback在那裏做getappdata

我也試過這樣:

C_N_Callback(hObject,eventdata, handles) 

    RN_Callback(hObject,eventdata, handles); 

這沒有給出錯誤,但是當我運行它一直在做RN_Callback程序的GUI(我猜刷新)。

回答

1

也許RN_Callback正在使用對hObject的引用。只是爲了提醒你,hObject是調用回調的對象。所以在你的情況下,它將是C_N,它將被傳遞到RN_Callback而不是RN

在這種情況下,代碼將是錯誤的,因爲它期望一種類型的GUI對象,但會得到另一種類型的GUI對象。例如:

function RN_Callback(hObject,eventdata, handles) 
    set(hObject,'String','This is me!'); 
end  

function C_N_Callback(hObject,eventdata, handles) 
    RN_Callback(hObject,eventdata, handles); 
end 

點擊RN將更改其字符串。但按照您的預期,點擊C_N將會更改C_N,而不是RN

相關問題