向 CMFC 工具栏添加下拉菜单按钮

问题描述 投票:0回答:1

我正在尝试向 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 中的所有菜单项都不是在菜单中,而是位于菜单之外的子菜单中?

谢谢。

c++ mfc toolbar
1个回答
2
投票

这个问题只需在创建菜单按钮时传入

.GetSubMenu(0)->GetSafeHmenu()
(而不是有问题的
CMenu
)即可解决。为什么会这样对我来说完全是个谜,如果你知道的话,你也知道 MFC 的主义之一。

不确定是否删除此问题或勾选已解决,以防其他人遇到此问题。

© www.soinside.com 2019 - 2024. All rights reserved.