matlab - 获取上下文菜单调用者的句柄

标签 matlab callback contextmenu

在 matlab 中,如果我有一个带有句柄 cxmenu_Options 的上下文菜单,它链接到不同的三个 uicontrol 对象。

上下文菜单回调函数内部:

代码演示:

function demoOnContextMenus
hFigure = figure;
hControl = uicontrol(                ...
    'Parent' , hFigure            , ...
    'Style'  , 'Edit'             , ...
    'Position' , [200 200 180 40] , ...
    'Tag'    , 'IamControl'       , ...
    'String' , 'UI-Control');

hCxMenu = uicontextmenu(            ...
    'Tag'    , 'IamMenu'       , ...
    'Callback',@CxMenuCallback);

set(hControl,'UIContextMenu',hCxMenu);

    function CxMenuCallback(objectHandle,eventData)
        tag = get(gcbo,'tag');
        helpdlg(tag);
    end
end

如何获取调用上下文菜单的 uicontrol 句柄?

最佳答案

有两种方法可以访问句柄:

gco 返回当前选定对象的句柄。因此 tag = get(gco,'tag') 将返回 IamControl

或者,您可以将句柄直接传递给回调(以防层次结构变得更加复杂,因为 gco 只会为您提供最终链的顶级句柄):

handleToPass = hControl;

hCxMenu = uicontextmenu(            ...
    'Tag'    , 'IamMenu'       , ...
    'Callback',@(oh,evt)CxMenuCallback(oh,evt,handleToPass));

set(hControl,'UIContextMenu',hCxMenu);

    function CxMenuCallback(objectHandle,eventData,handleOfCaller)
        tag = get(handleOfCaller,'tag');
        helpdlg(tag);
    end

关于matlab - 获取上下文菜单调用者的句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14709472/

相关文章:

javascript - 在 JavaScript 中对 SVG 形状的鼠标右键单击检测不起作用

javascript - jQuery - IE 中 'option' 元素的上下文菜单?

windows-7 - 我可以在没有管理员权限的情况下在 Windows 7 的上下文菜单中添加条目吗

matlab - 在 MATLAB 中拆分数组

python - scipy 与 matlab 中的 dblquad 给出不同的结果

image - 在 MATLAB 中叠加两个图像

android接口(interface)使回调函数可选

javascript - 如何在回调中访问正确的“this”?

c - 如何检查 libcurl 回调内的 HTTP 状态?

python - matlab中分位数的等效python命令