MFC之CMFCToolBar 使用ReplaceButton替换CMFCToolBarMenuButton控件 点击按钮弹出菜单问题

    最近使用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);

 

©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页