2012-04-11 13 views
10

ボタンをクリックしながらctrlキーを押さえているかどうかを知る必要があります。それはボタンなのでフィギュアではありません。図形などに 'selectionType'を使用することはできません。これを行う簡単な方法はありますか?「Ctrl」キーが押されていますか?

ありがとうございます!これについて

答えて

10

方法:

modifiers = get(gcf,'currentModifier');  %(Use an actual figure number if known) 
ctrlIsPressed = ismember('control',modifiers); 

フィギュアクラスは、コールバックを処理する際に便利です便利Current*多数の特性を持っています。これは、現在のマウスの位置、選択されたグラフィックスオブジェクト、および(ここでは)押されたキーを取得する方法です。 CurrentAxes、CurrentCharacter、CurrentKey、CurrentModifier、CurrentObject、CurrentPositionなどがあります。

+0

キーが解放された後、cmd修飾子が邪魔になるようです。現在どのキーが押されているかを知る方法はありますか? – codekitty

1

エスケープキーを押すと、CurrentModifierが再初期化されます。私の解決策は、これまでのところ、デフォルトの動作に戻すためにエスケープキーを押すようにユーザ(GUIの右側)に指示することでした。

全体として、MatlabのCurrentModifierの動作は、次のいずれかが発生するまで、モディファイアキーが「スティック」しているようです:別のモディファイアが押された、別のウィンドウが選択された、エスケープキーが押された。

関連する問題