我創建了一個按鈕,單擊該按鈕將打開一個.exe檔案并關閉當前應用程式:
HWND Button = CreateWindowEx(0, L"Button", L"Exe Application", WS_BORDER | WS_VISIBLE | WS_CHILD, 500, 500, 200, 200, hWndParent, (HMENU)BUTTON_EXE, 0, 0);
而在WindProc:
switch (uMsg)
{
case WM_COMMAND:
switch (wParam)
{
case BUTTON_EXE:
ShellExecute(hwnd, NULL, L"Module 1.exe", NULL, NULL, SW_SHOW);
PostQuitMessage(0);
return 0;
}
return 0;
}
我希望當我按下按鍵(例如,"maj")單擊按鈕時,當前應用程式不會關閉。
所以,我希望根據單擊按鈕時按下的鍵,它會發送一條不同的訊息,但我沒有找到方法。有沒有辦法做到這一點?
uj5u.com熱心網友回復:
您可以WM_COMMAND通過呼叫該GetKeyState函式來檢查在處理訊息時是否按下了某個鍵。根據它的回傳值,您可以實作不同的邏輯。
呼叫GetKeyState(而不是GetAsyncKeyState)以獲取單擊按鈕時的鍵狀態很重要。
uj5u.com熱心網友回復:
您可以對訊息進行額外的處理。例如:
- 您的按鈕將發送另一條訊息 (WM_BUTTON_EXE_RAW)。
- 如果僅按下按鈕maj,您會收到該訊息并重新發送其他訊息(BUTTON_EXE)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/391482.html
上一篇:Linux下的TCP套接字編程
下一篇:字串輸入未正確列印在螢屏上
