【问题标题】:Adding drop down arrows to CMFCToolBar buttons向 CMFCToolBar 按钮添加下拉箭头
【发布时间】:2023-03-22 13:29:01
【问题描述】:

谁能解释如何将下拉箭头添加到 CMFCToolBar 工具栏按钮 - 例如撤消/重做按钮。我们通过使用 TBSTYLE_EX_DRAWDDARROWS 样式和 TBN_DROPDOWN 通知在 CToolBar 中实现了这一点。这似乎不适用于 CMFCToolBar。我相信这些下拉箭头已添加到 VisualStudioDemo MFC 功能包演示中,但我不知道如何。

【问题讨论】:

    标签: mfc drop-down-menu mfc-feature-pack


    【解决方案1】:

    在 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 注册表存储的更多信息,请参阅此问题:stackoverflow.com/questions/184253/…
    • 不用担心。顺便说一句,如果你愿意接受这个作为你的答案,请在左边的绿色勾上打勾。干杯。