定义对象删除回调
您可以创建在删除对象时执行代码的对象删除回调。
例如,为图窗创建一个对象删除回调,以便在删除此图窗时显示一个对话框来询问是否要删除所有图窗。将以下代码复制到一个新的函数文件,然后将其以 figDelete.m
的名称保存在当前文件夹或 MATLAB® 搜索路径上的某个文件夹中。
function figDelete(~,~) yn = questdlg('Delete all figures?',... 'Figure Menu',... 'Yes','No','No'); switch yn case 'Yes' allfigs = findobj(get(groot,'Children'),'Type','figure' ); set(allfigs,'DeleteFcn',[]); delete(allfigs) case 'No' return end end
然后创建两个图窗,并将 figDelete
函数赋给 DeleteFcn
属性。删除其中一个图窗,并选择所出现的对话框中的一个选项。
figure('DeleteFcn',@figDelete) figure('DeleteFcn',@figDelete)