Main Content

隠れているオブジェクトにマウス クリックを渡す

この例では、隠れているオブジェクトにマウス クリックを渡す方法を説明します。

グラフィックス オブジェクトがマウス クリックをキャプチャしないようにするには、そのオブジェクトの PickableParts プロパティを none に設定します。ここでの例では、

  • hold の値を on または off で呼び出す座標軸のコンテキスト メニューを定義します。

  • いずれのデータ オブジェクトもマウス クリックをキャプチャせず、すべての右クリックを座標軸に渡してコンテキスト メニューを呼び出すグラフを作成します。

関数 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

棒グラフを作成し、bar オブジェクトの PickableParts プロパティを設定します。

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

現在の座標軸にコンテキスト メニューを作成します。

ax = gca;
ax.ContextMenu = axesHoldCM

グラフのバーを右クリックし、座標軸のコンテキスト メニューを表示します。