码迷,mamicode.com
首页 > 编程语言 > 详细

MFC 菜单操作

时间:2015-06-20 09:17:05      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:mfc   菜单   

1.菜单是窗口框架的组成部分,如果我们要导入自定义的菜单,可以通过以下语句实现
在CMainFrame::OnCreate的函数中添加如下代码段

SetMenu(NULL);//将原本的菜单项去除
CMenu menu;//新定义一个菜单对象
menu.LoadMenu(IDR_MAINFRAME);//将ID为IDR_MAINFRAME菜单资源载入到menu对象中
SetMenu(&menu);//将menu对象设为框架类对象的菜单
menu.Detach();//断开菜单资源与菜单对象的关联

2.生成复选标记菜单项,这段代码是在框架类中实现的

GetMenu()->GetSubMenu(0)->CheckMenuItem(0,MF_BYPOSITION | MF_CHECKED);

3.设置缺省菜单项,即菜单成黑体加粗

GetMenu()->GetSubMenu(0)->SetDefaultItem(1,TRUE);/

4.图像标记菜单项

GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(0,MF_BYPOSITION,&m_bitmap,&m_bitmap);

5.将菜单设置不能使用

GetMenu()->GetSubMenu(0)->EnableMenuItem(1,MF_BYPOSITION | MF_DISABLED);

6.右键弹出菜单

在OnRButtonDown函数中,添加如下代码:

CMenu menu;
    menu.LoadMenu(IDR_MENU1);
    CMenu *pPopup=menu.GetSubMenu(0);
    ClientToScreen(&point);//
    pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,this);

7.添加菜单项,可用AppendMenu()在菜单的最后加子菜单,InsertMenu()在指定的位置加子菜单

menu1.AppendMenu(MF_STRING,ID_TEST1,"Test1");
menu1.AppendMenu(MF_STRING,ID_TEST2,"Test2");  
menu1.InsertMenu(1,MF_BYPOSITION|MF_STRING, (UINT)ID_TEST1,"ID_TEST1");

8.删除菜单
用DeleteMenu()、RemoveMenu()函数来删除指定位置的菜单/菜单项

9.添加右键菜单
menu1.TrackPopupMenu(TPM_RIGHTBUTTON, pt.x, pt.y, this);

MFC 菜单操作

标签:mfc   菜单   

原文地址:http://blog.csdn.net/u011058765/article/details/46564609

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!