コンテキスト メニューの定義
この例では、コンテキスト メニューを定義する方法を説明します。
コンテキスト メニューの使用タイミング
コンテキスト メニューは、それを割り当てたグラフィックス オブジェクトをユーザーが右クリックしたときに表示されます。コンテキスト メニューにより、グラフィックス オブジェクト操作の選択肢をユーザーに提供できます。
コンテキスト メニューは、ユーザーが以下の操作ができるようにする場合にプログラムします。
グラフィックス オブジェクトを右クリックして特定のオプションから選択する。
メニュー ラベルにどのオプションがあるかを表示する。
キーの組み合わせがわからない場合でも、特定の結果をもたらす。
コンテキスト メニューの定義方法
出力引数を指定して関数
uicontextmenu
を呼び出し、ContextMenu
オブジェクトを作成します。uimenu
を使用して、各メニュー項目を作成します。コンテキスト メニューのメニュー項目ごとにコールバックを定義します。
コンテキスト メニューを各メニュー項目の親とし、それぞれにコールバックを割り当てます。
コンテキスト メニューを定義するオブジェクトの
ContextMenu
プロパティに、ContextMenu
オブジェクトを割り当てます。
function cm = defineCM cm = uicontextmenu; uimenu(cm,"Text","Wider","MenuSelectedFcn",@increaseLW); uimenu(cm,"Text","Inspect","MenuSelectedFcn",@inspectLine); end function increaseLW(~,~) % Increase line width h = gco; orgLW = h.LineWidth; h.LineWidth = orgLW+1; end function inspectLine(~,~) % Open the property inspector h = gco; inspect(h) end
関数 defineCM
は、それ自身が作成したコンテキスト メニュー オブジェクトを返します。関数 plot
で作成された line オブジェクトの ContextMenu
プロパティにこのオブジェクトを割り当てます。
plot(rand(1,5),"ContextMenu",defineCM)