0
我沒有規範的消息循環運行,所以有沒有辦法可以在我的消息處理程序中調用TranslateMessage(或其等價物)?我可以在消息回調中調用TranslateMessage嗎?
基本上我需要WM_CHAR
消息,除非我可以調用TranslateMessage我不會去那些。目前我有消息proc設置,但沒有消息循環。
// 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
}
我的消息PROC處理器是信息的條目的第一點,是建立在以下方式:
WNDCLASSEX wc;
wc.lpfnWndProc = WindowsMsgStatic;
....
RegisterClassEx(&wc);
您的代碼編輯現在讓我的答案看起來很傻。我真的不想重複寫一遍又一遍。關於'WM_CHAR',它們通過'TranslateMessage'發佈到窗口。你的問題的問題是,你只是提出了一個小問題的窗口。所以我們可以解決這個小小的窗口,但是然後你發現潛在的問題還沒有完全解決。然後你再把窗戶打開並改變我們的視野。你應該告訴我們一切! –
這就是我所擁有的!我再也沒有處理消息循環的代碼了! –
但我們沒有看到大圖。我可以說,你在窗口過程中抽取隊列是不對的。 –