Main Content

将鼠标点击传递给被遮盖对象

本例演示如何将鼠标点击传递给被遮盖对象。

将图形对象的 PickableParts 属性设置为 none 以防止该对象捕获鼠标点击。此示例:

  • 为坐标区定义了一个上下文菜单,它使用值 onoff 调用 hold

  • 创建一个图形,该图形中的数据对象都不能捕获鼠标点击,从而让所有的右键点击都传递到坐标区并调用上下文菜单。

axesHoldCM 函数定义了上下文菜单并返回其句柄。

function cmHandle = axesHoldCM
   cmHandle = uicontextmenu;
   uimenu(cmHandle,'Label','hold on','Callback',@holdOn);
   uimenu(cmHandle,'Label','hold off','Callback',@holdOff);
end
function holdOn(~,~)
   fig = gcbf;
   ax = fig.CurrentAxes;
   hold(ax,'on')
end
function holdOff(~,~)
   fig = gcbf;
   ax = fig.CurrentAxes;
   hold(ax,'off')
end

创建一个条形图并设置条形图对象的 PickableParts 属性:

bar(1:20,'PickableParts','none')

创建当前坐标区的上下文菜单:

ax = gca;
ax.ContextMenu = axesHoldCM

右键点击图形中的条形并显示坐标区上下文菜单: