////////////////////////////////////////////////////////////////////// カーソルキーを捕まえる(BCB4用) 1. Formのヘッダに以下のコードを書く protected: void __fastcall CMDialogKey(TCMDialogKey &Message); BEGIN_MESSAGE_MAP MESSAGE_HANDLER(CM_DIALOGKEY,TCMDialogKey,CMDialogKey); END_MESSAGE_MAP(TForm) 2. Formに以下の関数を追加して、必要な部分に処理を記述する。 void __fastcall TForm1::CMDialogKey(TCMDialogKey &Message) { switch (Message.CharCode){ case VK_UP: case VK_LEFT: Perform(WM_NEXTDLGCTL, 1, 0); // 前のコントロールにフォーカスを移す Message.CharCode = 0; // 押されたキーを無効化する break; case VK_DOWN: case VK_RIGHT: Message.CharCode = VK_TAB; // 押されたキーをTABに変更 break; default: break; } TForm::Dispatch((void *)&Message); } ここで捕まえるコードはBCBがデフォルトで行う処理(たとえばカーソル移動)よりも 早いため、Message.CharCodeの値を変更することで他のキーの代用も可能。 //////////////////////////////////////////////////////////////////////