Graphics    

FigureとAxesの保護

特定のFigureまたはAxesがグラフィックス出力に対するターゲットにならないように(すなわち、それらがgcfまたはgcaにならないように)することが重要である場合があります。この例としては、ユーザインタフェースを実現するUicontrolsを含むFigureがあります。

関数newplotやハンドル番号を出力するか暗示的に参照する他の関数(すなわち、gca, gcf, gco, cla, clf, close, findobj)から視覚可能なハンドル番号のリストからFigureやAxesのハンドル番号を除去することによって、MATLABが特定のFigureまたはAxesに描画しないようにすることができます。ハンドル番号の非表示を制御するプロパティには、HandleVisibilityShowHiddenHandlesの2つがあります。

HandleVisibility プロパティ

HandleVisibilityは、すべてのオブジェクトがもつプロパティです。3つの異なる範囲内でハンドル番号の可視化を制御します。プロパティは、つぎのような値をとることができます。

たとえば、GUIが(関数evalを使って)コールバックルーチン内部から計算されるテキスト文字列形式のユーザ入力を受け入れる場合、'close all'などの文字列はGUIを破壊していまいます。このような状況から保護するために、キーオブジェクトに対して、HandleVisibilityを一時的にoffに設定することができます。

gca、および、gcf が出力する値   保護されているFigureがスクリーンの最上部にあり、その下に保護されていないFigureがスタックされている場合、gcfはスタック内の保護されていない最上部のFigureのハンドル番号を出力します。gcaについても同様です。保護されていないFigure、または、Axesが存在していない場合、gcf、または、gcaを呼び出すと、MATLABはそのハンドル番号を出力するために、Figure、または、Axesを作成します。

保護されたオブジェクトへのアクセス

RootのShowHiddenHandlesプロパティは、ハンドルの可視化制御を有効にしたり、無効にしたりします。デフォルトでは、ShowHiddenHandlesoffで、MATLABは HandleVisibilityプロパティの設定に従います。onに設定すると、すべてのハンドル番号は、コマンドラインおよびコールバックルーチン内部から見えます。これは、通常は隠されているAxesのテキストラベルのハンドルを含めて、随時存在するすべてのグラフィックスオブジェクトにアクセスしたい場合に有効です。

関数closeは、hiddenオプションを使って、見えないFigureへのアクセスも可能にします。たとえば、

は、保護されていてもスクリーンの最上部のFigureを閉じます。allhiddenオプションの組み合わせ

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


 ホールド状態のテスト  クローズ要求関数