以编程方式从 MFC 工具栏中完全删除按钮
Posted
技术标签:
【中文标题】以编程方式从 MFC 工具栏中完全删除按钮【英文标题】:Programmatically and completely delete button from MFC toolbar 【发布时间】:2013-10-31 09:02:04 【问题描述】:我在 MFC C++ 应用程序中有一个文档。我需要从代码(不是资源)中的特定CMFCToolbar
中完全删除一个按钮,甚至阻止用户通过工具栏自定义对话框恢复按钮。目前我使用CMFCToolbar
的RemoveButton
方法,但它只会使按钮不可见,并且可以通过工具栏自定义对话框恢复,这对我来说不是一个选项。如果您提出一些可以帮助我的建议,我将非常高兴。
【问题讨论】:
【参考方案1】:CMFCToolBar 中有两个内部列表,用于在自定义时重置按钮。 它们被命名为 m_OrigButtons 和 m_OrigResetButtons。
您可能需要派生自己的类并从那里删除具有特定 ID 的按钮。
但更好的是:永远不要在第一次创建工具栏时包含这样的按钮!
【讨论】:
等等,等等。你是什么意思:“永远不要在第一次创建工具栏时包含这样的按钮!”。你的意思是我应该从资源文件中排除它并在代码中创建它。无论如何,感谢您的回答,我会先尝试这些列表。 是的!您不必使用资源来创建工具栏。工具栏资源只是一个与位图一起使用的整数数组。编写您自己的可能排除某些按钮的“SetButtons”例程并不难。我们也这样做,因为许可证限制,一些用户永远不会看到特定的按钮。以上是关于以编程方式从 MFC 工具栏中完全删除按钮的主要内容,如果未能解决你的问题,请参考以下文章