向CMFCToolBar按钮添加下拉箭头

向CMFCToolBar按钮添加下拉箭头,mfc,drop-down-menu,mfc-feature-pack,Mfc,Drop Down Menu,Mfc Feature Pack,有人能解释一下如何在CMFCToolBar工具栏按钮上添加下拉箭头吗?比如撤销/重做按钮。我们使用TBSTYLE_EX_DrawdArrows样式和TBN_下拉通知实现了这一点。这似乎不适用于CMFCToolBar。我相信这些下拉箭头已添加到VisualStudioDemo MFC功能包演示中,但我不知道是如何添加的。在VisualStudioDemo示例中,在CMainFrame::OnToolbarReset中,它们将工具栏的撤消按钮替换为一个名为CUndoButton的自定义类,如下所示:

有人能解释一下如何在CMFCToolBar工具栏按钮上添加下拉箭头吗?比如撤销/重做按钮。我们使用TBSTYLE_EX_DrawdArrows样式和TBN_下拉通知实现了这一点。这似乎不适用于CMFCToolBar。我相信这些下拉箭头已添加到VisualStudioDemo MFC功能包演示中,但我不知道是如何添加的。

在VisualStudioDemo示例中,在
CMainFrame::OnToolbarReset中,它们将工具栏的撤消按钮替换为一个名为CUndoButton的自定义类,如下所示:

m_wndToolBar.ReplaceButton(ID_EDIT_UNDO, CUndoButton(ID_EDIT_UNDO, _T("&Undo")));

CUndoButton
在示例项目的文件
“UndoBar.h”
中声明,因此您可以随意使用或更改它。

这就是我开始思考的问题。但是如果我注释掉ReplaceButton调用并重建应用程序,下拉箭头不应该消失吗?我发现事实并非如此。这是因为功能包示例将其窗口/工具栏设置存储在注册表中。我也是这样,但如果删除此注册表项,则下拉箭头将消失:HKEY_CURRENT_USER\Software\Microsoft\MFC\Samples\VisualStudioDemo有关新MFC注册表存储的更多信息,请参见此问题:无需担心。顺便说一下,如果你想接受这个答案,请勾选左边的绿色勾号。干杯