MFC 菜单操作

来源:互联网 发布:lua nginx module安装 编辑:程序博客网 时间:2024/05/29 17:59

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);

1 0
原创粉丝点击