Main Content

Figure および座標軸へのアクセスの禁止

アクセスを禁止する理由

場合によっては、特定の Figure または座標軸がグラフィックス出力のターゲットにならないようにすることが重要になるときがあります。つまり、特定の Figure または座標軸を、gcfgca から返される現在の Figure や座標軸にしないことが重要です。

ユーザー インターフェイスを実装するコントロールを含む Figure へのアクセスを禁止する場合があります。あるいは、座標軸へのアクセスを禁止する、すなわちアプリケーション プログラムの一部をアプリケーションでのみアクセスさせたい場合があります。

アクセスを禁止する方法

可視のハンドルのリストから特定の Figure または座標軸のハンドルを削除して、それらの Figure または座標軸が MATLAB® 関数のターゲットにならないようにします。

ハンドルの可視性をコントロールするプロパティには、HandleVisibilityShowHiddenHandles の 2 つがあります。

HandleVisibility は、すべてのグラフィックス オブジェクトがもつプロパティです。このプロパティは、次の 3 つの値でオブジェクトのハンドルの可視性をコントロールします。

  • 'on' — ハンドルを返す関数 (gcfgcagcoget および findobj) を使用して、オブジェクトのハンドルを取得できます。これは既定の動作です。

  • 'callback' — オブジェクトのハンドルは、コールバック関数のワークスペース内でのみ可視です。

  • 'off' — ハンドルは、コマンド ウィンドウおよびコールバック関数の中で実行されているすべての関数から不可視になります。

ハンドルの可視性により影響を受けるプロパティ

オブジェクトの HandleVisibility'callback' または 'off' に設定されている場合、以下のようになります。

  • オブジェクトのハンドルは、その親の Children プロパティには現れません。

  • Figure は、ルートの CurrentFigure プロパティには表示されません。

  • 座標軸は、その座標軸を含む Figure の CurrentAxes プロパティには表示されません。

  • グラフィックス オブジェクトは、Figure の CurrentObject プロパティには表示されません。

ハンドルの可視性により影響を受ける関数

子オブジェクトの親のリストにハンドルが表示されない場合、オブジェクト階層の検索によってハンドルを取得する関数では、ハンドルを返すことはできません。このような関数には getfindobjgcagcfgconewplotclaclf および close があります。

gca と gcf が返す値

ハンドルが非表示の Figure が画面の最前面にあるけれども、その背後にハンドルが可視のいくつかの Figure がスタックされている場合、gcf はスタック内で最も前面にある、ハンドルが可視の Figure を返します。これと同じ動作が gca でも行われます。ハンドルが可視の Figure や座標軸が存在しない場合に gcf または gca を呼び出すと、Figure および座標軸が作成されます。

非表示のハンドル オブジェクトへのアクセス

ルートの ShowHiddenHandles プロパティは、ハンドル可視化のコントロールを有効または無効にします。既定では ShowHiddenHandles'off' です。これは、MATLAB は各オブジェクトの HandleVisibility プロパティの設定に従うことを意味します。

ShowHiddenHandleson に設定することは、グラフィックス階層内の全オブジェクトの HandleVisibility プロパティを on に設定することと同じです。

メモ

座標軸のタイトルと軸ラベルの text オブジェクトは、座標軸の子オブジェクトではありません。これらのオブジェクトのハンドルにアクセスするには、座標軸の TitleXLabelYLabel および ZLabel プロパティを使用します。

関数 close は、hidden オプションを使用して非表示ハンドルの Figure へのアクセスを可能にします。以下に例を示します。

close('hidden') 

画面の最前面の Figure のハンドルが非表示の場合でも、その Figure を閉じます。

allhidden オプションを両方とも指定した次の関数、

close('all','hidden')

は、すべての Figure を閉じます。

ハンドルの有効性と可視性

どのハンドルも、その HandleVisibility プロパティの状態に関係なく、有効性を維持します。変数にオブジェクト ハンドルを代入した場合は、そのハンドル変数を使用していつでもハンドルのプロパティを設定、取得することができます。