本文档详细介绍了在Windows平台上使用Microsoft Foundation Classes (MFC) 创建文档视图程序的过程,特别是在Win32环境下。首先,MFC中的CWinApp类被用来创建整个应用程序的基础。它是一个高级的图形用户界面框架,适用于构建Windows应用程序。
创建一个MFC文档视图程序涉及以下几个关键步骤:
1. **CWinApp创建应用程序**:MFC的应用程序实例化始于创建一个CWinApp派生类的对象,这将初始化MFC的运行环境和应用程序的生命周期管理。
2. **文档管理**:使用文档模板中的`CreateNewDocument`函数创建文档对象,这些文档通常对应于应用程序中的核心业务逻辑和数据模型。每个文档都有其独立的数据和视图,并且可以通过`DockControlBar`、`DockControlBand`等方法在框架窗口中显示。
3. **框架窗口**:MFC通过`CreateNewFrame`函数创建框架窗口,这是应用程序的主界面,用于容纳文档视图和其他用户界面元素。在框架窗口的`WM_CREATE`消息处理函数中,实际的视图是通过`CreateView`函数来添加的。
4. **视图的创建**:视图是用户看到并交互的UI组件,负责展示和操作文档数据。视图可以是MFC提供的多种类型,如`CDocumentView`、`CScrollView`等,它们继承自`CWnd`,并可以包含自己的子视图和定制行为。
5. **应用程序类型比较**:文档视图程序属于窗口程序,与控制台程序(如命令行应用)和库程序(静态或动态)有显著区别。窗口程序有自己的窗口,而控制台程序和库程序没有。窗口程序的入口函数通常是`WinMain`,与控制台程序的`main`不同,动态库程序则有`DllMain`作为入口。
6. **文件和执行方式**:窗口程序以EXE文件形式存在,可以直接执行;控制台程序在DOS窗口中运行;动态库程序(DLL)通常不直接执行,而是通过其他程序调用;静态库程序(LIB)中的代码嵌入到其他程序中。
7. **Visual Studio开发环境**:MFC开发主要使用Microsoft Visual Studio C++,它提供了完整的集成开发环境,包括编译器、链接器和资源编译器。Visual Studio的不同版本支持从早期的VC6.0到最新的VC2010。Windows库(如kernel32.dll、user32.dll和gdi32.dll)以及相应的头文件(如Windows.h、winuser.h等)也是开发过程中不可或缺的部分。
8. **HelloWorld示例**:文章最后提到了创建不同类型的Windows应用程序(如控制台程序、窗口程序、静态库和动态库),这些都可以在Visual Studio环境中自动生成。
通过以上步骤,开发者可以利用MFC的强大功能和Windows API,高效地构建复杂的文档视图应用程序,实现用户友好的交互和数据管理。