我正在尝试一些新的 MFC 功能,我想要与 Visual C++ Language Samples for Visual Studio 2010 中的 TrayMenu 项目相同的东西,但在我的机器上(不知道是否只在我的机器上我试图找到网上有同样的问题,但没有找到任何类似的报告!!!)菜单出现在新的win7托盘通知wwnd的背景中,我似乎无法正常工作:
代码很简单:
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 中的小箭头显示并且显示带有隐藏图标的窗口时才会出现 - 这是留在我的上下文菜单前面的窗口...)
有没有人发现这个问题?这个问题有什么解决办法吗?
谢谢