在最近的几次项目中,对主框架类上的菜单,工具栏等的ID在ClassWizard对话框里在CListView的选项下也有,
比如我在对某个菜单项进行消息响应之后想进一步是该菜单变灰或不能用,我在该相应函数的末尾加入如下代码:
……
……
mmenu=GetMenu();//在CListView中定义:CMenu *mmenu;CMenu *submenu;
submenu = mmenu->GetSubMenu(4);
submenu->EnableMenuItem(ID_MATH_SCORE, MF_DISABLED | MF_GRAYED);但实际运行却会出错,指针mmen在调试过程中为一个不合理的内存地址,请问该如何改呢???????
CListView与CMainFrame类到底是个什么样的关系,为什么对菜单的响应函数要设置在CListView类中而不设置在CMainFrame类中啊?????我另外的一个帖子是关于按下菜单显示对话框的工程,结果也是一样的,也是对话框对象是不合理的内存地址!!
声明:我用VC6编的,
比如我在对某个菜单项进行消息响应之后想进一步是该菜单变灰或不能用,我在该相应函数的末尾加入如下代码:
……
……
mmenu=GetMenu();//在CListView中定义:CMenu *mmenu;CMenu *submenu;
submenu = mmenu->GetSubMenu(4);
submenu->EnableMenuItem(ID_MATH_SCORE, MF_DISABLED | MF_GRAYED);但实际运行却会出错,指针mmen在调试过程中为一个不合理的内存地址,请问该如何改呢???????
CListView与CMainFrame类到底是个什么样的关系,为什么对菜单的响应函数要设置在CListView类中而不设置在CMainFrame类中啊?????我另外的一个帖子是关于按下菜单显示对话框的工程,结果也是一样的,也是对话框对象是不合理的内存地址!!
声明:我用VC6编的,
解决方案 »
- 一个关于Combox的问题在线求解答 ....
- 如何判断用户在按键的同时,是否按下了CTRL 或者 ATL 键!
- 向高手请教有关邮件显示控件的问题!!!!~~~
- 关于对话框应用程序中自动改变里面控件大小的问题
- 本人初学VC,过来人指点一下,几本书,从何学起
- 如何创建一个白色背景的位图?
- 简单问题:怎样关闭计算机和重新启动系统?
- 完成一个类似于PictureBox的控件(分还可以商量的啊!)
- 怎么让工具条的图片背景变透明啊,图片是超过256色的!
- #######简单问题,来拿分!——如何关闭DoModal()?######
- 问个MFC很基础的问题
- 我在基于对话框的MFC程序中,设置了一个static控件,想用来显示资源中的bitmap,并且在oninitialdlg中添加了代码,编译通过了,但总是debug中出问题,请大家看看
// File\New menu item.
// NOTE: m_bAutoMenuEnable is set to FALSE in the constructor of
// CMainFrame so no ON_UPDATE_COMMAND_UI or ON_COMMAND handlers are
// needed, and CMenu::EnableMenuItem() will work as expected.CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(0);
submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
void CMainFrame::OnUpdateXXXX(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_bEnabled); //TRUE 为可用,FALSE 为不能用。
} 最后处理 ID_MATH_SCORE 菜单项目的 COMMAND 消息,在其中更新变量。
void CMainFrame::OnXXXX()
{
...其它代码。
m_bEnabled = !m_bEnabled;
}
文档—视图架构的程序应该响应UPDATE_COMMAND_UI来处理菜单的禁用,参考2楼代码。