waitforbuttonpress
クリックまたはキータッチを待機
説明
メモ
waitforbuttonpress を使用するよりも、uiwait を使用し、uiresume を呼び出す WindowButtonDownFcn コールバックまたは WindowKeyPressFcn コールバックを指定する方が、アプリの動作をより細かく制御できるため推奨されます。詳細については、代替機能を参照してください。
w = waitforbuttonpress は、現在の Figure 内でユーザーがマウス ボタンをクリックするかキーを押すまで、ステートメントの実行をブロックします。
戻り引数 w は、以下の値を取ることができます。
クリックを検出した場合は
0キーが押されたことを検出したら、
1を返す
関数 waitforbuttonpress は、以下のいずれのキーが単独で、あるいは一緒に押されても、値を返しません。Ctrl、Shift、Alt、Caps Lock、Num Lock、Scroll Lock
例
ヒント
最後に押されたキー、マウスの選択タイプ、または現在の Figure 内におけるマウス ポインターの位置を特定するには、
FigureプロパティのCurrentCharacter、SelectionType、およびCurrentPointをそれぞれクエリします。
アルゴリズム
waitforbuttonpress を使用するときに検討すべきいくつかの重要な点は、次のとおりです。
Figure に対し
WindowButtonDownFcnが定義されている場合、それはwaitforbuttonpressが値を返す前に実行される。関数
waitforbuttonpressは、コードがtry/catchブロック内で関数waitforbuttonpressを呼び出さない限り、ユーザーがウィンドウの閉じるボタンをクリックすることによって Figure を閉じるとエラーになる。
代替機能
uiwait を使用してステートメントの実行をブロックします。アプリ ユーザーがマウス ボタンをクリックするかキーを押したときにプログラムの実行を再開するには、uiresume を呼び出す WindowButtonDownFcn コールバックまたは WindowKeyPressFcn コールバックを指定します。
たとえば、次のコードはユーザーが Figure ウィンドウ内をクリックしたときにプログラムの実行を再開する UI figure を作成します。
fig = uifigure('WindowButtonDownFcn',@(src,event)uiresume(src));uiwait を呼び出して、uiresume が呼び出されるか、Figure が削除されるまで、プログラムの実行をブロックします。UIAxes オブジェクトを作成し、Figure をその親にします。座標軸のセットは表示されません。
uiwait(fig); ax = uiaxes(fig);
次に、Figure をクリックします。プログラムの実行が再開し、UIAxes オブジェクトが表示されます。