版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Ilson_/article/details/79614676
最近使用MFC单文档做了一个项目,需要用到CMFCToolBar由于自己的按钮是在太多了,所有又把相同的按钮归类也就是把相同的按钮放在一个按钮下,在点击这个按钮的时候弹出合并的所有选项
问题1:在我点击有下拉项的按钮右侧(三角符号部分)时才会弹出菜单,我现在需要的是只要在这个按钮内不管我点击哪里都可以弹出这个菜单项,查了很久终于让我无意间测试出来了,具体为:
//通过当前下拉项的ID获取当前按钮在工具栏的索引,然后通过索引获取到Button,需要转换为CMFCToolBarMenuButton 类型,然后条用函数OpenPopupMenu()则可以弹出按钮
int index = m_wndToolBar.CommandToIndex(ID_TOOLBAR_FIVE);
((CMFCToolBarMenuButton *)m_wndToolBar.GetButton(index))->OpenPopupMenu();
问题2:在选中第几项子菜单时我需要把当前的子菜单的图标设置为当前按钮的图标:
//这里也是通过当前下拉项的ID获取当前按钮在工具栏的索引和需要替换的图片的索引,然后重新设置
int iBtn = m_wndToolBar.CommandToIndex(ID_TOOLBAR_FIVE);
int iImg = GetCmdMgr()->GetCmdImage(ID_MENS_ALINE2);
m_wndToolBar.GetButton(iBtn)->SetImage(iImg);