C++Builderで押されたキーを取得する

キーボードのキーが押された時にはOnKeyDownイベントが、キーが話された時にはOnKeyUpイベントが発生します。

void __fastcall TForm1::Edit1KeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
{
  …
}

イベントの引数Keyには押されたキーの仮想キーコードが入ります。

イベントのTShiftState型の引数Shiftを調べることで、Shiftキー・Altキー・Ctrlキーなどが押されているかを調べることができます。

次のサンプルプログラムでは、入力欄でCtrl+Shift+F7キーが押されたら入力欄の内容をクリアする

void __fastcall TForm1::Edit1KeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
{
  //Ctrl+Shift+F7キーが押されたら入力欄の内容をクリアする
  if (Shift.Contains(ssCtrl) && Shift.Contains(ssShift) && Key == VK_F7)
  {
    Edit1->Clear();
  }
  //押されたキーをラベルに表示する
  Label1->Caption = ShortCutToText(ShortCut(Key, Shift));
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください