Main Content

定义对象删除回调

您可以创建在删除对象时执行代码的对象删除回调。

例如,为图窗创建一个对象删除回调,以便在删除此图窗时显示一个对话框来询问是否要删除所有图窗。将以下代码复制到一个新的函数文件,然后将其以 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)