自由浮动视图应该基于哪个MFC类

自由浮动视图应该基于哪个MFC类,mfc,window,toolbar,cwnd,Mfc,Window,Toolbar,Cwnd,我有一个基于对话框的MFC应用程序。现在我想创建一个wiw(一个或多个),其中包含工具栏、滚动条和客户端窗口(基于CWnd) 此窗口应基于哪个MFC类? 最好的方法是什么 谢谢。与基于对话框的应用程序相比,在文档视图应用程序中使用滚动客户端窗口更为自然——您可以将菜单栏和工具栏连接到对话框,但据我所知,它们连接到视图 SDI应用程序允许支持多个停靠/浮动工具栏和同一文档的多个视图,因此我建议您……从CFrameWnd开始。它的工作是给你的窗口提供一个标题栏/关闭按钮等,并定位控制栏(如工具栏)、

我有一个基于对话框的MFC应用程序。现在我想创建一个wiw(一个或多个),其中包含工具栏、滚动条和客户端窗口(基于CWnd)

此窗口应基于哪个MFC类? 最好的方法是什么


谢谢。

与基于对话框的应用程序相比,在文档视图应用程序中使用滚动客户端窗口更为自然——您可以将菜单栏和工具栏连接到对话框,但据我所知,它们连接到视图


SDI应用程序允许支持多个停靠/浮动工具栏和同一文档的多个视图,因此我建议您……

从CFrameWnd开始。它的工作是给你的窗口提供一个标题栏/关闭按钮等,并定位控制栏(如工具栏)、菜单(如果你需要)和一个视图。视图应该是CScrollView(用于绘制图形)或CFormView(用于类似对话框的控件)


如果您从头开始,让应用程序向导生成一个SDI或MDI应用程序开始,您会发现这要容易得多。

CFrameWnd的问题是构造函数/析构函数是“受保护的”,因此我无法创建它(标题中有一条注释说“动态创建使用受保护的构造函数”)。我能找到的所有示例都使用CFrameWnd(Ex)作为SDI或MDI应用程序中的主应用程序窗口。我想要一个自由浮动窗口,而不是SDI/MDI框架内显示的窗口。它是使用具有受保护构造函数/析构函数的类向导创建的CFrameWnd的派生类。基类没有。我不知道为什么。