我们知道隐藏菜单可用CMainFrame::SetMenu(NULL);来实现,但问题是在多文档情况下(MDI),第一次我可在CMyApp::InitInstance()
{
...
pMainFrame->SetMenu(NULL);
}
实现,但一旦我打开新的文档,就又出现菜单了,如何才能隐藏掉呀?
{
...
pMainFrame->SetMenu(NULL);
}
实现,但一旦我打开新的文档,就又出现菜单了,如何才能隐藏掉呀?
解决方案 »
- MFC文本框限制输入数字,输入其他字符时,如何屏蔽错误信息?
- OnPaint中画的图,能在所有控件之上显示吗?
- MFC做连连看,当相消发生连线时,如果让它继续做连线效果,又不影响继续游戏
- TURE与ture的有什么区别
- StreamOut 的问题
- ListControl 中如何实现查找列表中的某一项并替换它?
- 定义变量时,哪种情况是在栈中分配内存,哪种情况是在堆中分配内存呢?
- 想写个能让symantec antivirus的病毒升级包自动运行的程序,请各位大虾进来说说。
- SMPP的问题(急)
- 如何使用命令行
- 关于vc6.0的安装问题
- 在文件中#pragma comment(lib,"..\\lib\\xxx.lib")
U can use this function instead
CMenu::DestroyMenu
if u don't need it.
(包括参考了好几个帖子:
http://community.csdn.net/Expert/topic/3444/3444701.xml?temp=.9071924
http://community.csdn.net/Expert/topic/3655/3655346.xml?temp=5.077541E-03
)
下面是我用RemoveMenu实现的隐藏
CMyApp::InitInstance()
{
.....
const int nItems = 5; //默认因为有5个popup menu
for(int i= nItems-1;i>=0;--i)
pMainFrame->GetMenu()->RemoveMenu(i-1,MF_BYPOSITION);
//pMainFrame->SetMenu(NULL);
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
return TRUE;
}//////////////////////////
缺点:此时新建文档时可以隐藏MENU,
但新建后关闭所有文档时有主框架的MENU。
pMainFrame->GetMenu()->RemoveMenu(i-1,MF_BYPOSITION);
应该是
pMainFrame->GetMenu()->RemoveMenu(i,MF_BYPOSITION);
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.hMenu = NULL;// 隐藏菜单 return TRUE;
}