窗体视图 (MFC)

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

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

注释

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

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

  • 基于所选CFormView窗体样式类之一(、、CRecordViewCDaoRecordViewCDialog)创建类。

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

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

    WS_CHILD=On

    WS_BORDER=Off

    WS_VISIBLE=Off

    WS_CAPTION=Off

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

  • CDocument创建基于的类

    可以在项目中使用任何基于现有 CDocument类,而不是创建新类。

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

    还可以创建一个新类,以便基于模板。

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

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

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

有关详细信息,请参见:

另请参阅

用户界面元素