gpt4 book ai didi

c++ - 更新到 MFC 功能包

转载 作者:行者123 更新时间:2023-11-28 06:42:49 27 4
gpt4 key购买 nike

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

例如CFrameWnd:

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

在使用 CFrameWndEx 时需要替换为:

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

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

最佳答案

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

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

CControlBar 是 CToolBar 和其他的旧基类。

新的类是这样派生的:CMFCToolBar -< CMFCBaseToolBar -> CPane -> CWnd

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

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

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

关于c++ - 更新到 MFC 功能包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25621466/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com