MFC 单文档中将系统菜单栏替换为自己建立的菜单栏


原文出处:http://blog.csdn.net/xdhywj/article/details/7787272


在我们基于单文档编程的过程中,往往不需要系统自己定义的菜单栏,想自己设定自己需要的菜单栏,因此就需要修改某些参数实现该功能。

方法一:

1、建立好基于单文档工程,在资源中建立自己的菜单栏:IDR_MYMENU;

2、在CXXApp中的InitInstance()做如下修改:

  1. CSingleDocTemplate* pDocTemplate;  
  2. pDocTemplate = new CSingleDocTemplate(  
  3.     IDR_MYMENU,                      //在此处将系统的IDR_MAINFRAME改为:IDR_MYMENU  
  4.     RUNTIME_CLASS(CVIEWDoc),  
  5.     RUNTIME_CLASS(CMainFrame),       // main SDI frame window  
  6.     RUNTIME_CLASS(CVIEWView));  
  7. AddDocTemplate(pDocTemplate);  
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
	IDR_MYMENU,                      //在此处将系统的IDR_MAINFRAME改为:IDR_MYMENU
	RUNTIME_CLASS(CVIEWDoc),
	RUNTIME_CLASS(CMainFrame),       // main SDI frame window
	RUNTIME_CLASS(CVIEWView));
AddDocTemplate(pDocTemplate);

方法二(孙鑫老师第六课):

1、建立好基于单文档工程,在资源中建立自己的菜单栏:IDR_MYMENU;

2、在OnCreate(...)函数中添加如下代码:

  1. ......  
  2. //去掉系统的菜单  
  3. SetMenu(NULL);  
  4. //添加自己的菜单  
  5. CMenu menu;  
  6. menu.LoadMenu(IDR_MYMENU);  //加载自己的菜单  
  7. SetMenu(&menu);   
  8. menu.Detach();   //该函数是用来将菜单句柄与菜单对象分离  
  9. return 0;  
......
//去掉系统的菜单
SetMenu(NULL);
//添加自己的菜单
CMenu menu;
menu.LoadMenu(IDR_MYMENU);  //加载自己的菜单
SetMenu(&menu); 
menu.Detach();   //该函数是用来将菜单句柄与菜单对象分离
return 0;




  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值