How to check if a figure is closed using the big red 'X' mark?

15 views (last 30 days)
Hi! I am using a gui in my application. There are 'Ok' and 'Cancel' buttons there which upon clicking close the figure and do some additional processing before returning control to the main matlab program.
My query is how do I perform error checking if the user instead of pressing either of the two buttons, chooses to close the gui window using the window close button (big red X in windows)?
I read the documentation about CloseRequestFcn but was unable to figure it out from there.

Accepted Answer

Image Analyst
Image Analyst on 4 Feb 2015
Do you want them to do the OK button or the Cancel button if they do that? Which ever it is, just call the OK or Cancel callback from the closerequestfcn.
  3 Comments
Image Analyst
Image Analyst on 4 Feb 2015
No. But if you want, you can also shutdown from that function by deleting the handle. See this example:
% --- Executes when user attempts to close figMainWindow.
function figMainWindow_CloseRequestFcn(hObject, eventdata, handles)
% hObject handle to figMainWindow (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: delete(hObject) closes the figure
global vidobj; % Video camera object.
try % Save the current settings to our disk file.
SaveUserSettings(handles, true);
% Shut down the timer.
StopTimer(handles);
% Shut down the camera
try
delete(vidobj);
catch
end
% Get rid of variables from the global workspace so that they aren't
% hanging around the next time we try to run this m-file.
clear global;
delete(hObject);
catch ME
warningMessage = sprintf('Error in function figMainWindow_CloseRequestFcn.\nError Message:\n%s', ME.message);
set(handles.txtInfo, 'string', warningMessage);
WarnUser(warningMessage);
end
fprintf(1, '\n================= Exited figMainWindow_CloseRequestFcn. =================\n');
return; % from figMainWindow_CloseRequestFcn()

Sign in to comment.

More Answers (0)

Categories

Find more on Migrate GUIDE Apps in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!