gpt4 book ai didi

c++ - TrackPopupMenu : Window disabled after menu dissapears

转载 作者:行者123 更新时间:2023-11-28 03:52:46 25 4
gpt4 key购买 nike

我在我的应用程序中添加了一个弹出菜单,并使用以下代码激活:

HMENU contextMenu;
int CALLBACK WinMain(...)
{
HMENU hContext = LoadMenu(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_CONTEXT_MENU));
contextMenu = GetSubMenu(hContext, 0);
}

case WM_RBUTTONDOWN:
{
POINT pt;
pt.x = GET_X_LPARAM(lParam);
pt.y = GET_Y_LPARAM(lParam);
ClientToScreen(hWndSDL, &pt);
SetForegroundWindow(hWndSDL);
TrackPopupMenu(contextMenu, TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, hWndSDL, NULL);
break;
}

如果我弹出菜单,然后单击窗口的标题栏,菜单会消失,但窗口仍然不会响应窗口客户区之外的任何单击。

我为键盘上的一个字母设置了一个KEYUP连调用ReleaseCapture(),让窗口的非客户区重新开始响应。但是当菜单关闭时,这种行为应该是自动的,不是吗?

有人有什么想法吗?

谢谢

最佳答案

为什么要在 WM_RBUTTONDOWN 处理程序中显示菜单?

它应该是 WM_CONTEXTMENU,你必须记住它可能是由键盘生成的,并且不包含坐标。

或者至少使用 WM_RBUTTONUP inetead。

关于c++ - TrackPopupMenu : Window disabled after menu dissapears,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4845653/

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