我正在尝试向 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,它有一个子菜单,这是我想要显示的菜单。 像这样的东西:
[按钮]
我的菜单
Submenu Item 1
Submenu Item 2
Submenu Item 3
显然我想看到的是:
[按钮]
子菜单项 1
子菜单项 2
子菜单项 3
所以我的问题是....为什么 IDR_MYMENU 中的所有菜单项都不是在菜单中,而是位于菜单之外的子菜单中?
谢谢。
这个问题只需在创建菜单按钮时传入
.GetSubMenu(0)->GetSafeHmenu()
(而不是有问题的 CMenu
)即可解决。为什么会这样对我来说完全是个谜,如果你知道的话,你也知道 MFC 的主义之一。
不确定是否删除此问题或勾选已解决,以防其他人遇到此问题。