我在嘗試一些新的MFC功能,並且我想從Visual C++ 2010的Visual C++語言示例中的TrayMenu項目在我的機器上做同樣的事情(不知道是否是隻在我的機器上,我試圖找到網絡中的同樣的問題,但沒有找到任何類似的報告!!!)菜單出現在新的win7 traynotifywwnd的背景下,我似乎無法使其正確工作:CMFCPopupMenu停留在Win7的背景下
代碼很簡單:
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是一些如何針對此問題的修復程序,但它不能正常工作,它劇照SH當我們點擊小箭頭時,隱藏和顯示所有托盤圖標的窗口(注意,如果圖標顯示在ToolbarWindow32中 - 不隱藏 - 我們調用托盤上下文菜單,那麼它一切正常,這個問題如果圖標是隱藏的,是顯示了使用在ToolbarWindow32的小箭頭,顯示與隱藏的圖標窗口只出現 - 這是窗口,留在我的上下文菜單中的前...)
有沒有人發現這個問題?有什麼解決這個問題的?
感謝
我看到同樣的問題,所以我編輯了你的問題添加一個截圖。 – ChrisN
嗨Nuno,幾天前我也面臨同樣的問題。爲了解決這個問題,我使用了SetForegroundWindow(hParent)。其中hParent是創建系統托盤期間傳遞的窗口句柄。請讓我知道如果這解決了這個問題。 –
嗨,沒有SetForegroundWindow不適用於我... – Nuno