首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TrackMenuPopup :弹出菜单不断消失

TrackMenuPopup :弹出菜单不断消失
EN

Stack Overflow用户
提问于 2012-07-08 09:14:02
回答 2查看 994关注 0票数 0

我已经创建了一个弹出式菜单,当用户使用TrackPopupMenu点击任务栏图标时,它将显示出来。该代码运行良好,直到我在菜单外单击以取消选择项目。然后,每当我用鼠标左键/右键单击图标时,菜单就会弹出,并在我看到它之前立即消失(看起来TrackPopupMenu立即返回0)。MDSN告诉了在TrackPopupMenu之后添加PostMessage(hDlg, WM_NULL, 0, 0);的修复方法,但它不起作用。

下面是我的代码:

代码语言:javascript
复制
case WM_LBUTTONUP :
case WM_RBUTTONUP :
            POINT p;
            GetCursorPos(&p);
            HMENU hPopupMenu = CreatePopupMenu();
            AppendMenu(hPopupMenu, MF_ENABLED, ID_ADDMUSIC,    L"Add music"   );
            AppendMenu(hPopupMenu, MF_ENABLED, ID_REMOVEMUSIC, L"Remove music");
            SetForegroundWindow(msgInfo->hwnd);
            result = TrackPopupMenu(hPopupMenu, TPM_BOTTOMALIGN | TPM_RIGHTALIGN | TPM_NONOTIFY |
                                                TPM_RETURNCMD | TPM_RIGHTBUTTON | TPM_VERNEGANIMATION,
                                                p.x, p.y, 0, msgInfo->hwnd, NULL);
            PostMessageW(msgInfo->hwnd, WM_NULL, 0, 0);
            DestroyMenu(hPopupMenu);
EN

回答 2

Stack Overflow用户

发布于 2012-07-08 11:22:49

我相信你检查WM_LBUTTONUPWM_LBUTTONDOWN不是正确的方法。在创建任务栏图标时,我们指定一个回调消息。必须检查此消息,且在该消息中检查WM_LBUTTONUPWM_LBUTTONDOWN LPARAM

票数 0
EN

Stack Overflow用户

发布于 2012-07-08 11:35:33

这是你的应用程序的图标吗?

托盘图标为不同的内容发送WM_SHELLNOTIFY消息,wParm为0,您可以在lParam中测试WM_RBUTTONDOWN | WM_RBUTTONUP。

在启动时创建一次菜单,关闭托盘应用程序时删除。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11379953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档