`
阿尔萨斯
  • 浏览: 4170413 次
社区版块
存档分类
最新评论

VC 实现菜单项及工具栏按钮同步禁用与启用

 
阅读更多


也许太简单了,搜了N久,问了N多人,都没有找到解决异常的办法。
VC(6.0-2010)中已经指明UPDATE_COMMAND_UI就是用来设置菜单及命令按钮的状态的。
完全没有必要这样(会产生异常):
CMenu* menu =GetMenu();//经验证VC6.0中应该是 CMenu* menu =AfxGetMainWnd()->GetMenu();
CMenu* subMenu =menu->GetSubMenu(1);
subMenu->EnableMenuItem(1, MF_BYPOSITION|MF_DISABLED);
同时还得在CMainFrame的构造函数或者OnCreate中this->m_bAutoMenuEnable = false;
当菜单ID和ToolBar按钮ID一致时,仅菜单生效,并不能同步。
以上方法在VC2010中根本无法用。
简单方法如下:
假设菜单ID为ID_ZOOM_IN,
在CXXView类中建立bool类型的成员变量m_isZoomInEnabled,用来标识菜单
或工具栏按钮的启用与禁用状态。在需要禁用的地方将m_isZoomInEnabled置为false,在需要启用的地方将
m_isZoomInEnabled置为true就可以了,同时在ID上点右键并在CXXView类(也可以是其它类)中添加消息类
型为UPDATE_COMMAND_UI的事件。
void CXXView::OnUpdateZoomIn(CCmdUI *pCmdUI)
{
// TODO: 在此添加命令更新用户界面处理程序代码
pCmdUI->Enable(m_isZoomInEnabled); //仅此一句就可以了
}
若要菜单与工具栏按钮同步,仅需菜单项ID与工具栏按钮ID一致就可以了。
以上方法在VC的SDI与MDI工程中都可以。
源程序:http://download.csdn.net/detail/xinzheng_wang/4336357

分享到:
评论

相关推荐

    VC 菜单项及工具栏按钮启用与禁用

    VC 菜单项及工具栏按钮启用与禁用,SDI与MDI工程均可。VC6.0的源程序,可用VC2010直接打开编译。

    VC 窗口工具栏 状态栏编程技巧集【源码】.rar

    VC 窗口工具栏编程技巧集【源码】,同时还包括了状态栏相关技巧,可熟悉掌握以下工具栏相关编程技巧:停靠工具栏的制作实现,  为工具栏设置热点图像  为工具栏添加文本标签  启用或禁用工具栏的工具提示  ...

    VC++启用或禁用工具栏的工具提示

    摘要:VC/C++源码,界面编程,工具栏 VC++启用或禁用工具栏的工具提示,也就是放在工具栏的菜单按钮上,会出现文字提示,本实例程序可以禁止或启用这些提示,仅供VC++初学者参考。

    VC驿站基础班无KEY高清C++教程下载地址

    ③、菜单项的启用与禁用。 13、对话框的工具栏操作 ①、工具栏的创建; ②、工具栏按钮的响应。 14、对话框的状态栏操作 ①、状态栏的创建; ②、状态栏显示时钟、鼠标位置、鼠标点的颜色信息等。 15、一个...

    VC++窗口工具栏、状态栏编程的一些例子

     启用或禁用工具栏的工具提示  设置工具栏的标题  设置工具栏的位图  使用组合栏  停靠工具栏  为工具栏按钮设置热点图像  为工具栏按钮添加文本标签  为工具栏按钮添加下拉箭头  显示或隐藏工具栏和状态栏...

    Visual C++ MFC编程详解和实例

    7.2 例23 启用和禁用工具栏按钮 122 7.3 例24 为工具栏按钮添加字 123 7.4 例25 非标准工具栏大小 128 7.5 例26 保持工具栏按钮按下 129 7.6 例27 保持工具栏按钮组中 一个按钮按下 130 7.7 例28 为工具栏添加非按钮...

    VISUAL C++MFC编程实例

    7.2 例23 启用和禁用工具栏按钮 122 7.3 例24 为工具栏按钮添加字 123 7.4 例25 非标准工具栏大小 128 7.5 例26 保持工具栏按钮按下 129 7.6 例27 保持工具栏按钮组中 一个按钮按下 130 7.7 例28 为工具栏添加非...

    易语言程序免安装版下载

     为实现静态编译,易语言编译器、核心支持库、集成开发环境(IDE)等均有重大更新,支持库开发架框有扩展性调整,绝大多数官方支持库都已针对静态编译完成自身改造并提供静态库。  目前绝大多数官方支持库均已支持...

Global site tag (gtag.js) - Google Analytics