TButtonの矢印キーイベントを捕まえる
例えば、タブキーの他に矢印キーでも、アクティブコントロールを変更したいとして、グループボックスにあるボタンにフォーカスがあると、矢印キーを押すと同じグループボックス内の次のコントロールにフォーカスが移動してしまう。
TMessageEventをApplication->OnMessageに設定してやる。
typedef void __fastcall (__closure *TMessageEvent) (tagMSG& Msg, bool &handled);
void __fastcall TForm1::AppMessage (tagMSG& Msg, bool& handled)
{
ここでWM_KEYDOWNのメッセージを処理する。
メッセージをそのままにするならhandledはfalseに、再投入しないならtrueにする。
}
コンストラクタでクロージャを設定する。
__fasrcall TForm1::TForm1(TComponent* Owner)
{
Application->OnMessage = AppMessage;
}
これで!捕捉できる。
普通にKeyPreviewをtrueにして、OnKeyDownを書いてもうまく行かない。
| 固定リンク
| コメント (0)
| トラックバック (0)