MFCでメッセージをマップさせるメソッドを教えてください
メッセージ マッピング テーブルに適切なメッセージ処理関数を追加することで実現できます。具体的には、以下の手順で行います。
- クラスのヘッダーファイル(.hファイル)を開く
- DECLARE_MESSAGE_MAP()
- BEGIN_MESSAGE_MAP
- メッセージマップ終了
- BEGIN_MESSAGE_MAP
- END_MESSAGEMAP
- ON_MESSAGE
- ON_WM_XXXがネイティブの日本語で言い換えると
たとえば、WM_LBUTTONDOWN メッセージを処理する必要があると仮定します。
- クラスのヘッダファイルを開く。
- DECLARE_MESSAGE_MAP()
- BEGIN_MESSAGE_MAP
- Native Japanese: END_MESSAGE_MAP
- BEGIN_MESSAGE_MAP
- NATIVE_MESSAGE_MAP の終了
ON_WM_LBUTTONDOWN()
- クラスの実装ファイルにメッセージ処理関数の定義を追加します。
void CMyClass::OnLButtonDown(UINT nFlags, CPoint point)
{
// 处理鼠标左键按下事件
}
上記の手順が完了したあと、ウィンドウが WM_LBUTTONDOWN メッセージを受信したときに、OnLButtonDown 関数が自動的に呼び出されて処理されます。