将下拉菜单按钮添加到CMFCToolbar

时间:2011-09-20 10:52:55

标签: mfc toolbar

我正在尝试将菜单添加到CMFCToolbar。根据我在网上找到的建议,我这样做:

CMenu m_Menu;

m_Menu.LoadMenu(IDR_MYMENU);

m_Toolbar.ReplaceButton (   ID_DOTHISWHENCLICKED,
                CMFCToolBarMenuButton(  ID_DOTHISWHENCLICKED, 
                            m_Menu, 
                            10,
                            nullptr,
                            FALSE));

所以上面给了我一个带有下拉箭头的按钮。当我单击该按钮时,它会执行ID_DOTHISWHENCLICKED操作。当我点击下拉箭头时,我会看到一个包含一个项目的菜单。该项目是IDR_MYMENU的标题,它有一个子菜单,我想要显示的菜单。像这样:

[BUTTON]

我的菜单

 Submenu Item 1

 Submenu Item 2

 Submenu Item 3

显然我想看到的是:

[BUTTON]

子菜单项目1

子菜单第2项

子菜单第3项

所以我的问题是....为什么不是菜单中IDR_MYMENU中的所有菜单项,而不是它的子菜单?

感谢。

1 个答案:

答案 0 :(得分:1)

在创建菜单按钮时,仅通过传入.GetSubMenu(0) - > GetSafeHmenu()而不是相关的CMenu来解决此问题。为什么会这样,对我来说是一个完全的谜,以及你知道的MFC主义之一。

不确定是否删除此问题或在其他任何人遇到此问题时将其解析。