CView和CMainFrame 创建标记菜单,CheckMenu
来源:互联网 发布:三星note5 6.0优化好吗 编辑:程序博客网 时间:2024/06/13 22:24
一般做法:
在MFC Program时候,当对菜单进行创建标记菜单项的时候,可以在CMainFrame的OnCreate函数中通过如下代码实现:GetMenu()->GetSubMenu(5)->CheckMenuItem(0,MF_BYPOSITION | MF_UNCHECKED);
可是我们有时候由于某些特殊的要求要在CView类中实现该功能,如果直接在CView的某个消息响应函数中添加以上代码,会有严重警告的错误!因为这样得到的菜单还是主窗口下的菜单即主框架的菜单,而不是对应视图的菜单。CView视图关联的菜单和刚生成主窗口的那个主窗口菜单不一样。我们的目的是要对主窗口的菜单进行操作,因此就要获得指向它的指针。由于CMainFrane对应窗口是CView类窗口的父窗口,我们要得到其父窗口的指针。
解决方法:
AfxGetApp()->m_pMainWnd->GetMenu()->GetSubMenu(5)->CheckMenuItem(0,MF_BYPOSITION | MF_CHECKED);
GetParent()->GetMenu()->GetSubMenu(5)->CheckMenuItem(0,MF_BYPOSITION | MF_CHECKED);
但是如果使用了BCG则不同(),只需要响应 ON_UPDATE_COMMAND_UI 即可
void CMainFrame::OnChangeSize4()
{
// TODO: 在此添加命令处理程序代码
m_pEditWnd->m_bCanChangeSize = !m_pEditWnd->m_bCanChangeSize;
}
void CMainFrame::OnUpdateChangeSize4(CCmdUI *pCmdUI)
{
// TODO: 在此添加命令更新用户界面处理程序代码
pCmdUI->SetRadio(m_pEditWnd->m_bCanChangeSize);
}
- CView和CMainFrame 创建标记菜单,CheckMenu
- 单文档程序如何在CMainFrame类和CView类同时响应同一个菜单单击的消息函数
- CApp,CMainFrame,CDoc,CView
- 如何实现CAPP、CMainFrame、CViEW和CDOC之间相互调用?
- 如何实现CAPP、CMainFrame、CViEW和CDOC之间相互调用
- c++中CMainframe和CView类的区别?C++工程中的主入口点在哪里?
- MFC中的CApp,CMainFrame,CDoc,CView
- CMainFrame中添加CView头文件出错
- MFC中的CApp,CMainFrame,CDoc,CView
- MFC中的CApp,CMainFrame,CDoc,CView
- MFC中的CApp,CMainFrame,CDoc,CView
- MFC中的CApp,CMainFrame,CDoc,CView
- MFC中的CApp,CMainFrame,CDoc,CView互获指针
- CMainFrame类CDoc类CView类CApp类之间关系
- 在CView中如何得到CMainFrame的变量
- MFC单文档工程的使用小结(CDocument, CView, CMainFrame)
- 在MFC中,如何获取CWinApp,CMainFrame,CChildFrame,CDocument,CView
- [MFC]CView视图类、CMainFrame主框架类
- SQL使用经验 IN 还是 EXISTS的选用,哪个性能更好
- Python之旅 四
- sybase 备份恢复完工
- oracle卸载
- sql 总结
- CView和CMainFrame 创建标记菜单,CheckMenu
- Layout的使用时机
- SMARTARM2200 ADS工程在IAR EWARM 5.3上的移植(5)-ZLG-TCPIP的移植
- linux php扩展安装方法
- 忘记了的serverlet
- linux 总结
- JAVA中的依赖倒原则
- 上海招聘:Senior statistician or research scientist
- C#和java,C#和C++各有什么不同(3) -- Java没有的功能