尝试在系统托盘上右键单击显示上下文菜单(资源)时遇到问题。
我发现了这一行:
CMenu menu;
menu.LoadMenu(IDR_MENU1);
HMENU hMenu2 = menu.GetSubMenu(0)->Detach();
--> m_pTrayMenu = theApp.GetContextMenuManager()->ShowPopupMenu(hMenu2, point.x-5, point.y, this, TRUE);
将程序暂停约1.5秒。编辑:但只是第一次运行此代码。
然而,如果我有这条线,它只会停止:
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2007));
如果我将其更改为Office2003,它可以正常工作(虽然它没有得到我想要的漂亮视觉效果)
我试过在MSDN和不同论坛上查看,但它没有说明与Office2007不兼容的ShowPopupMenu()。
我没有想法。任何人都可以帮我解释一下这个问题吗?
祝你好运, 安东。
答案 0 :(得分:0)
我收到了MSDN论坛的回复:
(被带到开发者之后,这是我得到的回应):
根据开发者的说法,这种行为是设计的。延迟主要是 因为要进行一些XML解析来加载办公室颜色。该 颜色详细信息存储在XML资源文件中。
感谢大家的回复和帮助。
我目前的解决方案是:
CMFCPopupMenu *c = new CMFCPopupMenu;
delete c;
直接在程序开始时(因此在显示主窗口之前有~1秒的负载)。
谢谢大家。
祝你好运, 安东。