gpt4 book ai didi

c++ - SendMessage() 和 PostMessage() 的正确用法

转载 作者:行者123 更新时间:2023-11-28 02:37:09 24 4
gpt4 key购买 nike

我在正确使用 SendMessage() 和 PostMessage() 方面遇到了问题。我想做的是 SendMessage(hWnd, WM_USER + 1, 0, 0); 在我的窗口过程中

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;

switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// Parse the menu selections:
switch (wmId)
{
case WM_CREATE:
break;
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
case WM_USER:
break;
case WM_USER + 1:
break;
default:
if (grid.ProcessEvent(wmId, wmEvent))
{
SendMessage(hWnd, WM_USER + 1, 0, 0);
break;
}
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}

我不太确定为什么它不起作用,也许有人可以提供帮助。我确定调用了 SendMessage(...) 但它不会影响使用我的参数运行 WndProc。

最佳答案

case 标签 case WM_USER + 1: 嵌套在内部 case 语句中(打开 wmId)。它需要移出到 switch (message) case 语句中,因此它与 case WM_COMMAND:case WM_DESTROY:< 处于同一嵌套级别.

以上内容也适用于 case WM_USER:

关于c++ - SendMessage() 和 PostMessage() 的正确用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27080404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com