隠れているオブジェクトにマウス クリックを渡す
この例では、隠れているオブジェクトにマウス クリックを渡す方法を説明します。
グラフィックス オブジェクトがマウス クリックをキャプチャしないようにするには、そのオブジェクトの 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
グラフのバーを右クリックし、座標軸のコンテキスト メニューを表示します。