我使用C++創建了一個簡單的win32程序,但我想我只在這個應用程序中使用c。我需要確定應用程序上按下了哪個HWND按鈕。我搜索了msdn參考,它只告訴我HIWORD是通知代碼,LOWORD是BN_CLICKED消息的標識符。我已經設法確定何時單擊按鈕,但它僅適用於所有按鈕。我所有的按鈕都是在WM_CREATE消息中創建的。這就是我成功地掀起至今:winapi BN_CLICKED如何識別哪個按鈕被點擊?
case: WM_CREATE:
HWND hPlus = CreateWindowEx(0, L"BUTTON", L"+", WS_CHILD | WS_VISIBLE, 130, 240, 35, 30, hwnd, (HMENU)IDC_MENU, GetModuleHandle(NULL), NULL);
HWND hEquals = CreateWindowEx(0, L"BUTTON", L"=", WS_CHILD | WS_VISIBLE, 170, 205, 65, 65, hwnd, (HMENU)IDC_MENU, GetModuleHandle(NULL), NULL);
break;
case WM_COMMAND:
switch(HIWORD(wParam))
{
case BN_CLICKED:
MessageBox(hwnd, L"OK", "OK", MB_OK);
break;
}
break;
我試圖比較hEquals到LOWORD(wParam中),但在編譯時給了我一個錯誤。我想我也嘗試將它與lParam的HIWORD和LOWORD進行比較,也沒有進行編譯。現在我對接下來要做的事情一無所知。
很高興能有幫助。你爲什麼不接受這兩個答案中的一個? – manuell
嗨文斯。我再次來到這裏是因爲有人提出了我的答案。你爲什麼不接受答案?只是好奇。 – manuell
我非常忙。我很接受答案哈哈。我很容易分心,甚至不記得這是什麼項目。 – Vince