一、没有UpdateCmdUI句柄时
MFC中缺省的习惯是当没有UpdateCmdUI句柄时程序是使能(Enable)菜单,菜单自动变成使能,只要关掉缺省值就可以了,把下面的代码加入你的程序
CMainFrm::CMainFrm
{
// Other stuff
this->m_bAutoMenuEnable = false;
}
然后在消息响应函数中添加如下代码:
CMenu* m_menu = GetParent()->GetMenu(); //如果是在View类中进行的消息响应,需要添加GetParent()来获取MainFrm类的指针,然后再获得菜单指针
CMenu* submenu = m_menu->GetSubMenu(0);
submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_GRAYED);
一、有UpdateCmdUI句柄时
在框架中添加菜单ID的ON_UPDATE_COMMAND_UI消息,在相应函数参数中会有“CCmdUI* pCmdUI”这个参数,添加如下代码:
pCmdUI->Enable(false);
就可是这个菜单变灰显
转自:http://hi.baidu.com/vcmfc/blog/item/b7e20f82047483a60df4d2fa.html
http://www.china-askpro.com/msg21/qa34.shtml
我创建了一个基于对话框的MFC应用程序,然后自定义加入了一个菜单和一个工具栏。
并且设定了工具栏按钮和菜单选项的关联。
请问当菜单不可选时,如何让对应的工具栏上的按钮也不可按,程灰色。
试试
CToolBarCtrl *btn=(CToolBarCtrl*)&m_wndToolBar.GetToolBarCtrl();
btn->EnableButton(ID_RUN,false);
ID_RUN就是要控制的BUTTON ID,IDR_TOOLBAR1是TOOLBAR资源
转自:
http://topic.csdn.net/t/20040822/09/3297786.html
MFC中缺省的习惯是当没有UpdateCmdUI句柄时程序是使能(Enable)菜单,菜单自动变成使能,只要关掉缺省值就可以了,把下面的代码加入你的程序
CMainFrm::CMainFrm
{
// Other stuff
this->m_bAutoMenuEnable = false;
}
然后在消息响应函数中添加如下代码:
CMenu* m_menu = GetParent()->GetMenu(); //如果是在View类中进行的消息响应,需要添加GetParent()来获取MainFrm类的指针,然后再获得菜单指针
CMenu* submenu = m_menu->GetSubMenu(0);
submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_GRAYED);
一、有UpdateCmdUI句柄时
在框架中添加菜单ID的ON_UPDATE_COMMAND_UI消息,在相应函数参数中会有“CCmdUI* pCmdUI”这个参数,添加如下代码:
pCmdUI->Enable(false);
就可是这个菜单变灰显
转自:http://hi.baidu.com/vcmfc/blog/item/b7e20f82047483a60df4d2fa.html
http://www.china-askpro.com/msg21/qa34.shtml
我创建了一个基于对话框的MFC应用程序,然后自定义加入了一个菜单和一个工具栏。
并且设定了工具栏按钮和菜单选项的关联。
请问当菜单不可选时,如何让对应的工具栏上的按钮也不可按,程灰色。
试试
CToolBarCtrl *btn=(CToolBarCtrl*)&m_wndToolBar.GetToolBarCtrl();
btn->EnableButton(ID_RUN,false);
ID_RUN就是要控制的BUTTON ID,IDR_TOOLBAR1是TOOLBAR资源
转自:
http://topic.csdn.net/t/20040822/09/3297786.html