MFCのTranslateMessage関数の使い方
MFCでは、TranslateMessage関数は主にキーボードやマウスのメッセージを文字メッセージに変換するために使用されてます。以下はTranslateMessage関数の使用方法です。
- メッセージループ内で、主ウィンドウクラスのメッセージマップ関数(OnMessage)で、TranslateMessage 関数が通常呼び出される。
BOOL CMainFrame::OnMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN || pMsg->message == WM_KEYUP ||
pMsg->message == WM_SYSKEYDOWN || pMsg->message == WM_SYSKEYUP ||
pMsg->message == WM_MOUSEMOVE || pMsg->message == WM_LBUTTONDOWN ||
pMsg->message == WM_LBUTTONUP || pMsg->message == WM_RBUTTONDOWN ||
pMsg->message == WM_RBUTTONUP)
{
// 将键盘和鼠标消息翻译成字符消息
TranslateMessage(pMsg);
}
// 其他处理消息的代码...
return CFrameWnd::OnMessage(pMsg);
}
- TranslateMessage関数は、現在のメッセージの詳細を含むMSG構造体へのポインタを引数として受け取ります。
- TranslateMessage 関数は、WM_KEYDOWN、WM_KEYUP、WM_SYSKEYDOWN、WM_SYSKEYUP、WM_MOUSEMOVE、WM_LBUTTONDOWN、WM_LBUTTONUP、WM_RBUTTONDOWN、WM_RBUTTONUP メッセージを処理する場合にのみ呼び出す必要があります。
- TranslateMessage 関数はキーボードとマウスのメッセージを文字メッセージに変換し、メッセージ キューに追加します。
- そして、メッセージループはメッセージキューから文字メッセージを取り出して処理します。
注:TranslateMessage 関数はキーボードやマウスメッセージのみを処理し、それ以外のメッセージは直接処理しません。それ以外のメッセージの処理は、状況に応じて適切なコードを書く必要があります。