//标记菜单
//GetMenu()->GetSubMenu(0)->CheckMenuItem(2,MF_BYPOSITION |MF_CHECKED);//索引方式
//GetMenu()获得菜单CMenu对象指针,
GetMenu()->GetSubMenu(0)->CheckMenuItem(ID_FILE_SAVE,MF_BYCOMMAND |MF_CHECKED);//ID方式
//默认菜单项
//GetMenu()->GetSubMenu(0)->SetDefaultItem(1,TRUE);//索引方式
GetMenu()->GetSubMenu(0)->SetDefaultItem(ID_FILE_OPEN,FALSE);//ID方式
//注:一个子菜单项只能有一个默认菜单项
//创建位图菜单
/* CString str;
str.Format("x=%d y=%d",GetSystemMetrics(SM_CXMENUCHECK),//获取系统信息:选择菜单位图大小
GetSystemMetrics(SM_CYMENUCHECK));
MessageBox(str); */
m_map1.LoadBitmap(IDB_BITMAP1);
m_map2.LoadBitmap (IDB_BITMAP2);
GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(2,MF_BYPOSITION,&m_map1,&m_map2);
//将一个菜单项设为无效且变灰
GetMenu()->GetSubMenu(0)->EnableMenuItem(1,MF_BYPOSITION|MF_DISABLED|MF_GRAYED);
//必须在CMainFrame的构造中加入m_bAutoMenuEnable = FALSE;才能生效
SetMenu(NULL);//去掉一个菜单
CMenu menu;//此处的定义应为全局变量,否则用menu.Detach()将资源与对象断开
menu.LoadMenu(IDR_MAINFRAME);
SetMenu(&menu);//重新显示一个菜单
menu.Detach();//将资源与对象断开
//命令更新机制
void CMainFrame::OnUpdateFileSaveAs(CCmdUI* pCmdUI)
{
if(ID_FILE_SAVE_AS==pCmdUI->m_nID)//两种方式
pCmdUI->Enable( FALSE);
if(3==pCmdUI->m_nIndex)
pCmdUI->Enable(TRUE);
}
//弹出式菜单的建立
void CLesson3View::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CMenu menu;
menu.LoadMenu(IDR_MENU1);
ClientToScreen(&point); //将客户区坐标转换为screen坐标
CMenu* pmenu=menu.GetSubMenu(0);
pmenu->TrackPopupMenu(TPM_LEFTALIGN |TPM_RIGHTBUTTON,point.x,point.y,this);//显示菜单
CView::OnRButtonDown(nFlags, point);
}
//动态菜单操作
CMenu submenu;
submenu.CreatePopupMenu();//创建子菜单
//GetMenu()->AppendMenu(MF_POPUP,(UINT)submenu.m_hMenu,"popmenu" );//添加一个子菜单
GetMenu()->InsertMenu(2,MF_BYPOSITION | MF_POPUP,
(UINT)submenu.m_hMenu ,"popmenu");//插入一个子菜单
submenu.AppendMenu(MF_STRING,1101,"MENU1");//添加菜单项
submenu.AppendMenu(MF_STRING,1102,"MENU2");
submenu.AppendMenu(MF_STRING,1103,"MENU3");
submenu.Detach();
GetMenu()->GetSubMenu(0)->AppendMenu(MF_STRING,114,"MENU4");
GetMenu()->GetSubMenu(0)->InsertMenu(1,MF_BYPOSITION| MF_STRING,115,"MENU5");
GetMenu()->DeleteMenu(1,MF_BYPOSITION);//删除一个子菜单
GetMenu()->GetSubMenu(0)->DeleteMenu(2,MF_BYPOSITION);//删除一个菜单项
DrawMenuBar(); //重画菜单栏
Invalidate();//设客户区为无效,而引起重
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/JidanIt/archive/2008/07/17/2664140.aspx
分享到:
相关推荐
Menu菜单操作实例
万年历 菜单操作 时期时间闹钟设置 温度 无任何BUG
ActionBar中的下拉菜单操作
易语言菜单操作例程源码,菜单操作例程,主要窗口信息,取高低字,类型,状态,取得窗口信息,窗口设置信息,取菜单句柄,取子菜单句柄,将消息传答窗口函数,取条目字串,删除菜单条目,添加菜单项,取条目数量,复选菜单,禁止菜单...
对于opengl的菜单操作的具体代码!里面涉及了opengl中api的几个api函数。通过一个列子就可以轻松掌握其菜单的用法!
易语言源码菜单操作.rar 易语言源码菜单操作.rar 易语言源码菜单操作.rar 易语言源码菜单操作.rar 易语言源码菜单操作.rar 易语言源码菜单操作.rar
一个菜单操作技巧(可以实现位图菜单,把菜单分成几列,设定菜单的宽度,及从文本文件中装入菜单)(36KB)
易语言源码菜单操作例程.rar 易语言源码菜单操作例程.rar 易语言源码菜单操作例程.rar 易语言源码菜单操作例程.rar 易语言源码菜单操作例程.rar 易语言源码菜单操作例程.rar
U3d菜单操作中英文对照表,将unity3d的菜单操作有中文的对照。
菜单操作例程.rar
易语言窗口图标菜单操作源码,窗口图标菜单操作,WndProc,GetSystemMenu_,InsertMenu_,SetWindowLong_,CallWindowProc_
EasyUI树形菜单操作。在asp.net中动态绑定
完整版菜单操作.rar
用51单片机实现简单的菜单操作,有框架结构,可自己编写菜单子程序
jquery仿电脑桌面右键菜单操作代码
wordpress主题自定义导航菜单操作使用方法
易语言源码易语言窗口图标菜单操作源码.rar 易语言源码易语言窗口图标菜单操作源码.rar 易语言源码易语言窗口图标菜单操作源码.rar 易语言源码易语言窗口图标菜单操作源码.rar 易语言源码易语言窗口图标菜单操作...
动态增加菜单操作,在listbox中增加项,并生成popmenu弹出菜单
wordpress自定义导航菜单操作使用方法
grldr菜单操作的方法与工具,网上下载,非本人写。