ドキュメンテーション

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

iptSetPointerBehavior

ポインター動作構造体を Handle Graphics オブジェクトに保存

構文

iptSetPointerBehavior(h, pointerBehavior)
iptSetPointerBehavior(h, [])
iptSetPointerBehavior(h, enterFcn)

説明

iptSetPointerBehavior(h, pointerBehavior) は、Handle Graphics の指定した h オブジェクトに、指定したポインター動作構造体を保存します。h がオブジェクトの配列である場合、iptSetPointerBehavior は各オブジェクトに同じ構造体を保存します。

Figure のポインター マネージャー (「iptPointerManager」を参照) と共に使用すると、ポインター動作構造体は、Figure のマウス ポインターが Figure 内のオブジェクトに重なったときや、オブジェクトから離れたときに何が起こるかを制御します。この構造体の詳細は、「ポインター動作構造体」を参照してください。

iptSetPointerBehavior(h, []) は、Handle Graphics オブジェクトからのポインター動作をクリアします。

iptSetPointerBehavior(h, enterFcn) はポインター動作構造体を作成し、enterFcn フィールドを指定された関数ハンドルに設定し、traverseFcn および exitFcn の各フィールドを [] に設定します。これらのフィールドの詳細は、「ポインター動作構造体」を参照してください。一般的に必要なのは enterFcn のみであるため、この構文は便利のために提供されています。

ポインター動作構造体

ポインター動作構造体には、enterFcntraverseFcn および exitFcn の 3 つのフィールドが含まれます。Figure の HG オブジェクトにこの構造体を関連付けるには、これらのフィールドの値を関数ハンドルに設定し、関数 iptSetPointerBehavior を使用します。ポインター マネージャーが Figure にインストールされていない場合、次のイベントが発生したときにポインター マネージャーはこれらの関数を呼び出します。フィールドを [] に設定した場合は、何のアクションも発生しません。

関数ハンドル呼び出される場合
enterFcnオブジェクト上をマウス ポインターが移動したときに呼び出されます。
traverseFcnマウス ポインターがオブジェクトに重なったときに呼び出され、オブジェクト内部をマウスが移動するたびに再度呼び出されます。
exitFcnマウス ポインターがオブジェクトを離れたときに呼び出されます

作成された関数をポインター マネージャーで呼び出す場合、ポインター マネージャーは、2 つの引数としてFigure へのハンドルとポインターの現在の位置を渡します。

例 1

特定のオブジェクト上では常にマウス ポインターを花形に変え、マウス ポインターがオブジェクトから離れたときに元のポインターに戻します。この例では、パッチ オブジェクトを作成し、ポインター動作構造体をオブジェクトに関連付けます。この場合、必要なのは enterFcn のみであるため、この例では iptSetPointerBehavior(n, enterFcn) 構文を使用します。次に、Figure にポインター マネージャーを作成します。ポインター マネージャーが、元の Figure ポインターに戻すことに注意してください。

 hPatch = patch([.25 .75 .75 .25 .25],...
                [.25 .25 .75 .75 .25], 'r');
 xlim([0 1]);
 ylim([0 1]);
 
 enterFcn = @(figHandle, currentPoint)...
       set(figHandle, 'Pointer', 'fleur');
 iptSetPointerBehavior(hPatch, enterFcn);
 iptPointerManager(gcf);

例 2

オブジェクト内部の場所によって、マウス ポインターの外観を変更します。この例では、ポインター動作構造体を設定します。enterFcn および exitFcn の各フィールドを [] に設定し、traverseFcn を、位置固有の動作を処理する overMe という名前の関数に設定します。overMe は、オブジェクト内部のマウスの位置によって、マウス ポインターが異なる関数 (\toolbox\images\imdemos にある) の例です。詳細は、overMe を編集してください。

hPatch = patch([.25 .75 .75 .25 .25],...
               [.25 .25 .75 .75 .25], 'r'); 
xlim([0 1])
ylim([0 1])

pointerBehavior.enterFcn    = [];
pointerBehavior.exitFcn     = [];
pointerBehavior.traverseFcn = @overMe;

iptSetPointerBehavior(hPatch, pointerBehavior);
iptPointerManager(gcf);

例 3

マウス ポインターがオブジェクト上にある場合に Figure のタイトルを変更します。この場合、enterFcnexitFcn は、希望する効果を得るために使用され、traverseFcn[] です。

 hPatch = patch([.25 .75 .75 .25 .25],...
                [.25 .25 .75 .75 .25], 'r');
 xlim([0 1])
 ylim([0 1])
 
 pointerBehavior.enterFcn = ...
     @(figHandle, currentPoint)...
          set(figHandle, 'Name', 'Over patch');
 pointerBehavior.exitFcn  = ...
     @(figHandle, currentPoint) set(figHandle, 'Name', '');
 pointerBehavior.traverseFcn = [];
 
 iptSetPointerBehavior(hPatch, pointerBehavior);
 iptPointerManager(gcf)
この情報は役に立ちましたか?