2013-05-08 97 views
0

我在接收WM_KEYDOWN消息時遇到問題。 WM_KEYDOWN工作得很好,直到我點擊我的應用程序中的任何按鈕。從那時起,它不再從鍵盤接收我的輸入。如何解決它?C++ Win32API WM_KEYDOWN和按鈕

+2

如果您可以詳細闡述一下您的問題,那麼提供一些代碼的perharps將會被很好地接受。 – aimbire 2013-05-08 18:41:47

回答

2

如果您正在使用Win32控件,如CreateWindowEx(NULL, L"BUTTON", ...這種預期每個控件實際上是一個子窗口並在聚焦後捕獲所有窗口消息。

點擊按鈕後,您可以捕獲WM_COMMAND - BM_CLICK消息,然後調用SetFocus(hwnd)重新調整焦點(如Giswin所述)。

1

在您點擊應用程序中的任何按鈕之前,您的窗口可能沒有焦點。你可以在你的應用程序的地方添加代碼以編程方式設置重點:

yourwindow->SetFocus(); 

或使用WINAPI:

::SetFocus(hWnd);