MFC通过获取菜单句柄,实现菜单的基本操作
2013-08-08 19:56
465 查看
1、程序的主菜单属于框架类窗口,所以应该在框架类窗口创建完成之后再去访问菜单。
2、框架类窗口创建完成的WM_CREAT消息函数OnCreat函数中对菜单进行操作。
2、框架类窗口创建完成的WM_CREAT消息函数OnCreat函数中对菜单进行操作。
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("Failed to create toolbar\n"); return -1; // fail to create } if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE0("Failed to create status bar\n"); return -1; // fail to create } // TODO: Delete these three lines if you don't want the toolbar to // be dockable m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar); //设置 菜单项标记 GetMenu()->GetSubMenu(0)->CheckMenuItem(ID_FILE_NEW, MF_BYCOMMAND|MF_CHECKED); //取消 菜单项标记 GetMenu()->GetSubMenu(0)->CheckMenuItem(ID_FILE_NEW, MF_BYCOMMAND|MF_UNCHECKED); //设置图形标记菜单 static CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(ID_FILE_OPEN, MF_BYCOMMAND, &bmp, &bmp); //可以通过以下方式获取菜单上显示的位图尺寸 // CString str; // str.Format("x=%d, y=%d", GetSystemMetrics(SM_CXMENUCHECK), GetSystemMetrics(SM_CYMENUCHECK)); // MessageBox(str); //设置 默认菜单项 GetMenu()->GetSubMenu(0)->SetDefaultItem(ID_FILE_OPEN, FALSE); //禁用菜单项 m_bAutoMenuEnable = FALSE; //启用系统所有菜单项 GetMenu()->GetSubMenu(0)->EnableMenuItem(1, MF_BYPOSITION|MF_DISABLED|MF_GRAYED); //启用菜单项 GetMenu()->GetSubMenu(0)->EnableMenuItem(1, MF_BYPOSITION|MF_ENABLED); //移除当前菜单 SetMenu(NULL); //加载一个菜单 static CMenu menu; menu.LoadMenu(IDR_MAINFRAME); SetMenu(&menu); menu.Detach(); //菜单句柄与菜单对象相互分离 return 0; }
相关文章推荐
- python 通过js控制滚动条拉取全文 通过psutil获取pid窗口句柄,通过win32gui使程序窗口前置 通过autopy实现右键菜单和另存为操作
- 实现一个栈(元素遵守先入后出顺序),能够通过 min 方法在 O(1)时间内获取栈中的最小元素。同时,栈的基本操作:入栈(Push)、出栈(Pop),也是在O(1)时间内完成的
- Zookeeper客户端基本操作java实现——创建连接、创建节点、添加修改节点内容、获取子节点、获取节点数据、删除节点
- jQuery插件zTree实现的基本树与节点获取操作示例
- MongoDB学习笔记(二) 通过samus驱动实现基本数据操作
- C++实现矩阵类型的基本操作:创建矩阵(M x N)、释放内存、获取某一元素的值、修改某一元素的值、乘法操作
- 制作一个菜单 ,用栈实现一些基本操作
- 打印菜单界面,用c语言实现二叉树的基本操作
- MFC的一些基本操作总结,比如操作字体,菜单,图片等
- 制作一个菜单,用队列实现基本操作
- MongoDB学习笔记(二) 通过samus驱动实现基本数据操作
- MongoDB学习笔记(二) 通过samus驱动实现基本数据操作
- 通过Freemarker实现页面静态化的基本操作
- MFC基本图形的绘制(三)在SDI中实现绘图操作
- 打印菜单界面,用c语言实现二叉树的基本操作
- MongoDB学习笔记(二) 通过samus驱动实现基本数据操作
- MFC实现文本的基本操作
- MongoDB学习笔记(二) 通过samus驱动实现基本数据操作
- 前端通过AJAX提交数据,后台PHP处理数据实现异步操作基本流程
- BuguMongo通过BuguFS类来操作GridFS文件系统,能够实现对文件的保存、获取、删除、重命名、移动等操作,而且能够按文件夹组织文件。