gpt4 book ai didi

c++ - CMFCPopupMenu 在 Win7 中停留在后台

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:01:08 24 4
gpt4 key购买 nike

我正在尝试一些新的 MFC 功能,我想要与 Visual Studio 2010 的 Visual C++ 语言示例中的 TrayMenu 项目相同的东西,但在我的机器中(不知道是否只在我的机器中我尝试在网上找到同样的问题,但没有找到任何类似的报告!!!)菜单出现在新的 win7 traynotifywwnd 的背景中,我似乎无法正常工作:

代码很简单:

void CTrayMenuDlg::OnTrayContextMenu ()
{
CPoint point;
::GetCursorPos (&point);

CMenu menu;
menu.LoadMenu (IDR_MENU1);

CMFCPopupMenu::SetForceShadow (TRUE);

HMENU hMenu = menu.GetSubMenu (0)->Detach ();
CMFCPopupMenu* pMenu = theApp.GetContextMenuManager()->ShowPopupMenu(hMenu, point.x, point.y, this, TRUE);

pMenu->SetForegroundWindow ();
}

我认为 SetForegroundWindow 是解决这个问题的方法,但它不起作用,它仍然显示在窗口后面,当我们单击小箭头时,所有托盘图标都被隐藏和显示(请注意,如果图标显示在 ToolbarWindow32 中 - 未隐藏 - 我们调用托盘上下文菜单然后一切正常,只有当图标被隐藏并且使用 ToolbarWindow32 中的小箭头显示并且窗口显示隐藏图标时才会出现此问题- 这个窗口是否位于我的上下文菜单前...)

context menu shown behind popup window

有没有人发现这个问题?这个问题有什么解决办法吗?

谢谢

最佳答案

我不确定这个,但你可以尝试添加:

    // Set window position to topmost window.
pMenu->SetWindowPos(
&CWnd::wndTopMost,
0, 0, 0, 0,
SWP_NOMOVE | SWP_NOREDRAW | SWP_NOSIZE );

代替pMenu->SetForegroundWindow();

关于c++ - CMFCPopupMenu 在 Win7 中停留在后台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6662974/

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