我创建了一个按钮,单击该按钮时,将打开一个
.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;
}
我希望当我按下按键(例如,
"shift"
)单击按钮时,当前应用程序不会关闭。
所以,我希望根据单击按钮时按下的键,它发送不同的消息,但我没有找到如何实现。有办法做到吗?
您可以通过调用
WM_COMMAND
函数来检查在处理
GetKeyState
消息时是否按下了某个键。根据其返回值,您可以实现不同的逻辑。
调用
GetKeyState
(而不是 GetAsyncKeyState
)来获取单击按钮时的按键状态非常重要。
您可以对消息进行额外的处理。例如: