gpt4 book ai didi

c++ - 如何让 CMenu 弹出菜单消失?

转载 作者:搜寻专家 更新时间:2023-10-31 01:12:58 27 4
gpt4 key购买 nike

我的应用程序在系统托盘中有一个弹出菜单。我遇到的问题是我无法在不选择项目的情况下让菜单消失。

当我点击窗口中的其他地方时,如何让弹出菜单消失?

这是使弹出菜单出现的代码:

LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if( message == WM_MYMESSAGE && lParam == WM_RBUTTONDOWN)
{
m_menu.CreatePopupMenu();
POINT point;

GetCursorPos(&point);
m_menu.AppendMenu(MF_POPUP, WM_MAXIMIZE, _T("Maximize"));
m_menu.AppendMenu(MF_POPUP, WM_EXIT, _T("Exit"));
m_menu.TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x, point.y, this);

}
return CDialog::WindowProc(message, wParam, lParam);
}

我试过使用 CMenu::DestroyMenu 但没有成功。

最佳答案

对我有用的解决方案是在调用 TrackPopupMenu 之前调用 SetForegroundWindow(); 函数。

我在 Remarks 中找到了解决方案TrackPopupMenu 功能说明。

关于c++ - 如何让 CMenu 弹出菜单消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13200702/

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