“另存为…”菜单项的回调调用函数FILEMENUFCN,第一个输入参数是菜单所在图形的句柄,第二个输入参数是字符串“FileSaveAs”.如果您将数字句柄存储在变量hFigure中,则以下命令应相当于单击该图窗口中的“另存为…”菜单项:
>> filemenufcn(hFigure,'FileSaveAs');
一些笔记……
>函数FILEMENUFCN仅部分记录.您可以在命令窗口中执行help filemenufcn,但在联机文档中没有条目.在MATLAB 2009a中,该函数可以在以下文件夹中找到:
C:\Program Files\MATLAB\R2009a\toolbox\matlab\uitools\filemenufcn.m
查看功能代码,它最终会调用.fig文件的函数SAVEAS或其他文件类型的函数HGEXPORT(带有附加输入参数).
>通过搜索图窗口及其菜单的子项,我能够搜索“另存为…”菜单项的回调.您可以通过将root property 'ShowHiddenHandles'设置为“on”然后使用GET命令遍历图形窗口的'Children' properties及其菜单来自行完成此操作.另一种方法是使用FINDALL命令,假设您知道要查找的对象的某些属性.例如,这将找到当前图形窗口的“文件”菜单的句柄:
>> hFileMenu = findall(gcf,'Label','&File');
这将找到“另存为…”菜单项的句柄并显示其回调:
>> hSaveAs = findall(hFileMenu,'Label','Save &As...');
>> get(hSaveAs,'Callback')
ans =
filemenufcn(gcbf,'FileSaveAs')