正在更新到MFC功能包

Updating to MFC Feature Pack

本文关键字:功能 MFC 更新      更新时间:2023-10-16

我有几个从代码Sizing Control Bar派生的Toolbars/Menubar,我希望能够与CFrameWndEx一起使用,但我找不到一个易于与CControlBar派生对象一起使用的ShowPane函数。

例如CFrameWnd:

ShowControlBar(&m_ctlDimBar, m_ctlDimBar.IsVisible(), FALSE);

使用CFrameWndEx时,需要替换为:

ShowPane(&m_ctlDimBar, m_ctlDimBar.IsVisible(), FALSE, TRUE);

然而,我不能按原样使用m_ctlDimBar,因为它是CControlBar派生的对象,而不是CBasePane对象。有没有一种简单的方法可以避免不兼容,而不必重写链接中的代码?

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

因此,如果您有一个包含一些内容的CControlBar,那么现在就使用CDockingPane。

CControlBar是CToolBar和其他的旧基类。

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

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

了解这些新东西如何工作的最简单方法是使用向导创建一个示例应用程序。然后看看基类不同类型的窗口是如何实现的。这个描述很可怕,几乎不存在。但使用代码并没有那么复杂。)

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