我正在尝试使用 MFC 功能包中的一些类来改进我的 MFC 应用程序的外观。
在我的应用程序中,我使用一个 CReBar 对象来停靠三个不同的工具栏。我已经更新了这个对象的类以使用 CMFCReBar,但是在使用某些视觉样式时它看起来不太好。
Feature Pack 中似乎存在问题,因为即使使用 package.json 部署的 RebarTest 示例也会发生问题。
这是示例应用程序的屏幕截图,只是将视觉样式更改为 Office 2007(使用应用程序菜单而不是代码):
Screenshot of RebarTest example application http://img105.imageshack.us/img105/1057/rebartestep5.png
有人成功使用过CMFCReBar吗?有没有其他方法可以在不使用它的情况下实现相同的目标?
最佳答案
基本上你不需要再使用钢筋控件了。通过简单地创建您的 CMFCToolbars 和 CMFCMenuBar,对它们调用 EnableDocking,然后在每个上使用 DockPane,它们将停靠并采用 Office 2007(或您使用的任何其他主题)外观。查看 WordPad Feature Pack 示例,或使用 AppWizard 创建一个新项目(具有所有默认设置的项目即可)以查看示例。
从您的评论中可以看出:如果您想将工具栏停靠在彼此旁边,您可以在 DockPane 之后使用 DockPaneLeftOf。根据我的经验,如果您不首先使用 DockPane 两个工具栏,它往往会在工具栏放置上表现得很奇怪。
我还没有找到一个很好的简单解决方案来阻止工具栏在彼此相邻停靠时被拖动,您可以删除 CBRS_GRIPPER 样式,但这并不能阻止工具栏被拖动。
您也可以不调用菜单栏或工具栏上的 EnableDocking。这将使他们固定的地方。但是, DockPaneLeftOf 在这种情况下似乎不起作用,因此您会丢失彼此相邻的停靠工具栏。
因此,如果您想停止停靠或将工具栏停靠在彼此旁边,现在似乎是其中之一。
关于mfc-feature-pack - 如何使用 CMFCRebar 产生可接受的外观和感觉?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/447339/