Я создаю графический интерфейс в Matlab, используя GUIDE. Я хочу создать новое поле в дескрипторах, когда левая кнопка мыши нажата, изменить поле, когда мышь движется, и удалить его, когда кнопка будет отпущена. Но обратный вызов Windowbuttonmotionfcn не видит это новое поле. Итак, вот пример кода:
function fig_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
set(hObject,'windowbuttonmotionfcn',{@fh_wbmfcn,handles});
set(hObject, 'windowbuttondownfcn',{@fh_wbdfcn, handles});
set(hObject, 'windowbuttonupfcn',{@fh_wbufcn, handles});
function fh_wbmfcn(hObject, eventdata, handles)
isfield(handles, 'new_field') % it is always 0, but should be 1 when button is down
function fh_wbdfcn(hObject, eventdata, handles)
handles.new_field=1;
guidata(hObject, handles);
function fh_wbufcn(hObject, eventdata, handles)
if isfield(handles, 'new_field')
handles=rmfield(handles,'new_field');
guidata(hObject, handles);
end