窗体视图 (MFC)

可以将窗体添加到支持 MFC 库的任何 Visual C++ 应用程序,包括基于窗体的应用程序(其视图类派生自 CFormView)。 如果最初未创建应用程序来支持窗体,当你插入一个新窗体时 Visual C++ 将为你添加这一支持。 在实现默认文档/视图体系结构的 SDI 或 MDI 应用程序中,当用户选择“新建”命令时(默认位于“文件”菜单),Visual C++ 会提示用户从可用窗体中进行选择。

使用 SDI 应用程序时,当用户选择“新建”命令时,窗体的当前实例将继续运行,但如果找不到所选窗体,则会创建具有所选窗体的应用程序的新实例。 在 MDI 应用程序中,当用户选择“新建”命令时,窗体的当前实例将继续运行。

注意

可以将窗体插入基于对话的应用程序(应用程序的对话类基于 CDialog,但未实现视图类)。 但是,如果没有文档/视图体系结构,Visual C++ 不会自动实现“文件”>“新建”功能。 你必须为用户创建一种查看其他窗体的方法,例如,使用各种属性页实现选项卡式对话框。

在应用程序中插入新窗体时,Visual C++ 执行以下操作:

  • 基于选择的窗体样式类(CFormViewCRecordViewCDaoRecordViewCDialog)之一创建类。

  • 创建具有相应样式的对话框资源(也可以使用尚未与类关联的现有对话资源)。

    如果选择现有的对话框资源,则可能需要通过使用对话框的“属性”页来设置这些样式。 对话框的样式必须包括:

    WS_CHILD=On

    WS_BORDER=Off

    WS_VISIBLE=Off

    WS_CAPTION=Off

对于基于文档/视图体系结构的应用程序,使用“新建窗体”命令(右键单击“类视图”)还可以:

  • 创建基于 CDocument 的类

    无需创建新类,可以在项目中使用任何现有的基于 CDocument 的类。

  • 使用字符串、菜单和图标资源生成文档模板(派生自 CDocument)。

    还可以创建一个新类来作为模板的基础。

  • 在应用程序的 InitInstance 代码中添加对 AddDocumentTemplate 的调用。

    Visual C++ 为创建的每个新窗体添加此代码,当用户选择“新建”命令时,它会将窗体添加到可用窗体列表中。 此代码包括窗体的关联资源 ID 以及共同构成新窗体对象的关联文档、视图和框架类的名称。

    文档模板将用作文档、框架窗口和视图之间的连接。 对于单个文档,可以创建多个模板。

有关详细信息,请参阅:

另请参阅

用户界面元素