Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

open

UI figure 内の場所でコンテキスト メニューを開く

説明

open(cm,x,y) は、自身が親となっている UI figure 内の指定された (x、y) 座標でコンテキスト メニュー cm を開きます。座標は Figure の左下隅からピクセル単位で測定されています。この Figure は関数 uifigure で作成されていなければなりません。

open(cm,coord) はピクセル座標を 2 要素のベクトル coord として指定します。たとえば、open(cm,[100 150]) はコンテキスト メニュー cm を座標 (100,150) で開きます。

すべて折りたたむ

UI figure を作成します。2 つのサブメニューをもつコンテキスト メニューを作成し、UI figure に割り当てます。

fig = uifigure;

cm = uicontextmenu(fig);
m1 = uimenu(cm,'Text','Import Data');
m2 = uimenu(cm,'Text','Export Data');

fig.ContextMenu = cm;

次に、場所 (250,250) でそのコンテキスト メニューを開きます。

open(cm,250,250)

自身が親となっている UI figure の空白エリア、または ButtonDownFcn プロパティをサポートするグラフィックス オブジェクトで右クリックしたときに、未割り当てのコンテキスト メニューを開きます。

まず、openCtxtMenu.m というプログラム ファイルを作成します。プログラム ファイル内で次を行います。

  • UI figure で UI 座標軸を作成し、その座標軸でデータをプロットします。

  • UI figure で 1 つのサブメニューをもつコンテキスト メニューを作成します。

  • WindowButtonDownFcn プロパティを onButtonDown というコールバック関数に設定します。

  • onButtonDown というコールバック関数を作成します。その中で、UI figure の SelectionType プロパティをクエリして、選択が右クリックかどうかを判別します。右クリックが発生したら、CurrentPoint プロパティからマウス ポインターの x 座標と y 座標を取得します。x 座標と y 座標は、返されるベクトルの 1 番目と 2 番目の要素です。その後、その場所でコンテキスト メニューを開きます。他の選択タイプが発生したら、コマンド ウィンドウにメッセージを表示します。

プログラム ファイルを実行するとき、UI 座標軸上、または UI figure 内の空白スポット上で右クリックして、コンテキスト メニューを開きます。

function openCtxtMenu
fig = uifigure;
ax = uiaxes(fig);
plot(ax,magic(5));

cm = uicontextmenu(fig);
m = uimenu(cm,'Text','Menu1');

fig.WindowButtonDownFcn = @onButtonDown;

    function onButtonDown(src,event)
        clickType = src.SelectionType;

        switch clickType
            case 'alt'
            x = src.CurrentPoint(1);
            y = src.CurrentPoint(2);
            open(cm,x,y)

            otherwise
            disp('Right-click to view context menu')
        end

    end

end

入力引数

すべて折りたたむ

関数 uicontextmenu で作成されたコンテキスト メニュー オブジェクト。

x 座標。UI figure の左端を基準としたピクセル単位の数値として指定します。Figure の幅を超える値を指定すると、コンテキスト メニューは見えなくなります。

y 座標。Figure の下端を基準としたピクセル単位の数値として指定します。Figure の高さを超える値を指定すると、コンテキスト メニューは見えなくなります。

ピクセル座標。整数値の 2 要素の行ベクトルとして指定します。

例: [100 150] はピクセル座標 (100,150) を指定します。

ヒント

  • コンテキスト メニューを閉じるには、キーを押すか、またはコンテキスト メニューの外でマウスをクリックします。コンテキスト メニューをプログラムで閉じることはできません。

アルゴリズム

コールバック関数 ContextMenuOpeningFcn は、関数 open を呼び出すときには実行されません。コールバック関数はユーザーの操作によってのみトリガーされます。

R2020a で導入