以编程方式从 MFC 工具栏中完全删除按钮

Posted

技术标签:

【中文标题】以编程方式从 MFC 工具栏中完全删除按钮【英文标题】:Programmatically and completely delete button from MFC toolbar 【发布时间】:2013-10-31 09:02:04 【问题描述】:

我在 MFC C++ 应用程序中有一个文档。我需要从代码(不是资源)中的特定CMFCToolbar 中完全删除一个按钮,甚至阻止用户通过工具栏自定义对话框恢复按钮。目前我使用CMFCToolbarRemoveButton 方法,但它只会使按钮不可见,并且可以通过工具栏自定义对话框恢复,这对我来说不是一个选项。如果您提出一些可以帮助我的建议,我将非常高兴。

【问题讨论】:

【参考方案1】:

CMFCToolBar 中有两个内部列表,用于在自定义时重置按钮。 它们被命名为 m_OrigButtonsm_OrigResetButtons

您可能需要派生自己的类并从那里删除具有特定 ID 的按钮。

但更好的是:永远不要在第一次创建工具栏时包含这样的按钮!

【讨论】:

等等,等等。你是什​​么意思:“永远不要在第一次创建工具栏时包含这样的按钮!”。你的意思是我应该从资源文件中排除它并在代码中创建它。无论如何,感谢您的回答,我会先尝试这些列表。 是的!您不必使用资源来创建工具栏。工具栏资源只是一个与位图一起使用的整数数组。编写您自己的可能排除某些按钮的“SetButtons”例程并不难。我们也这样做,因为许可证限制,一些用户永远不会看到特定的按钮。

以上是关于以编程方式从 MFC 工具栏中完全删除按钮的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式在工具栏项按钮上添加图像

以编程方式完成时未显示工具栏

栏按钮项以编程方式添加工具栏

MFC:隐藏工具栏按钮

vc6.0 mfc窗口问题

以编程方式添加到导航栏的UIBarButtonItem无法调用选择器,而添加到工具栏的按钮确实如此