更新到MFC功能包

时间:2014-09-02 10:41:55

标签: c++ mfc mfc-feature-pack

我有几个从代码Sizing Control Bar派生的工具栏/菜单栏,我希望能够与CFrameWndEx一起使用,但我无法找到易于使用的{{1}使用ShowPane派生对象的函数。

例如CControlBar

CFrameWnd

使用ShowControlBar(&m_ctlDimBar, m_ctlDimBar.IsVisible(), FALSE); 时需要替换为:

CFrameWndEx

但我不能原样使用ShowPane(&m_ctlDimBar, m_ctlDimBar.IsVisible(), FALSE, TRUE); ,因为它是m_ctlDimBar派生对象,而不是CControlBar对象。是否有一种简单的方法来规避不兼容性而无需重写链接中的代码?

1 个答案:

答案 0 :(得分:1)

CControlBar是工具栏的旧世界,当您使用新的MFC样式时,必须使用CMFC类中的所有组件。遗憾的是,并非所有新课程都以CMFC开始。

因此,如果您有一个CControlBar,其中一些内容应该可以停靠,请立即使用CDockingPane。

CControlBar是CToolBar和其他的旧基类。

新类以这种方式派生:CMFCToolBar - < CMFCBaseToolBar - > CPane - >的CWnd

CPane是最近的基类,CDockingPane是窗口类 这允许您放置自己的内容。

了解这些新内容如何工作的最简单方法是使用向导创建示例应用程序。比看基类如何实现不同类型的窗口。描述很糟糕,几乎不存在。但使用代码并不复杂。 ;)

PS:在我写了一些评论后,我试着回答。