正規のメッセージ ループを実行していないので、メッセージ プロシージャ ハンドラ内で TranslateMessage (または同等のもの) を呼び出す方法はありますか?
基本的にWM_CHAR
メッセージが必要で、TranslateMessage を呼び出せない限り、それらを取得することはできません。現在、メッセージ プロシージャはセットアップされていますが、メッセージ ループはありません。
// Static window function called by Windows for message processing. Implementation
// delegates message processing to MemberWndProc.
LRESULT CALLBACK FxPlayerTiny::WindowsMsgStatic(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
msg = PeekMessage(&msg, HWnd, WM_KEYFIRST, WM_KEYLAST, PM_NOREMOVE);
if (msg type is key down){
TranslateMessage(&msg);
//DispatchMessage(&msg); -- needed?
}
else process msg normally
}
私のメッセージ プロシージャ ハンドラは、メッセージのエントリの最初のポイントであり、次の方法でセットアップされます。
WNDCLASSEX wc;
wc.lpfnWndProc = WindowsMsgStatic;
....
RegisterClassEx(&wc);