WEB开发网
开发学院软件开发VC MFC教程(5)-- MFC对象的创建(1) 阅读

MFC教程(5)-- MFC对象的创建(1)

 2010-03-25 20:33:46 来源:WEB开发网   
核心提示:MFC对象的创建过程应用程序使用MFC的接口是把一些自己的特殊处理填入MFC框架,这些处理或者在应用程序启动和初始化的时候被调用,MFC教程(5)-- MFC对象的创建(1)(5),或者在程序启动之后和用户交互的过程中被调用,或者在程序退出和作清理工作的时候被调用,使用INI文件,

MFC对象的创建过程

应用程序使用MFC的接口是把一些自己的特殊处理填入MFC框架,这些处理或者在应用程序启动和初始化的时候被调用,或者在程序启动之后和用户交互的过程中被调用,或者在程序退出和作清理工作的时候被调用。这三个阶段中,和用户交互阶段是各个程序自己的事情,自然都不一样,但是程序的启动和退出两个阶段是MFC框架所实现的,是MFC框架的一部分,各个程序都遵循同样的步骤和规则。显然,清楚MFC框架对这两个阶段的处理是很有必要的,它可以帮助深入理解MFC框架,更好地使用MFC框架,更有效地实现应用程序特定的处理。

MFC程序启动和初始化过程就是创建MFC对象和Windows对象、建立各种对象之间的关系、把窗口显示在屏幕上的过程,退出过程就是关闭窗口、销毁所创建的Windows对象和MFC对象的过程。所以,下面要讨论几种常用MFC对象的结构,它们是构成一个文档-视模式应用程序的重要部件。

应用程序中典型对象的结构

本节将主要分析应用程序对象、文档对象、文档模板等的数据结构。通过考察类的结构,特别是成员变量结构,弄清它的功能、目的以及和其他类的关系;另外,在后续有关分析中必定会提到这些成员变量,这里先作个说明,到时也不会显得突兀。

下面几节以表格的形式来描述各个类的成员变量。表格中,第一列打钩的表示是MFC类库文档有说明的;没打钩的在文档中没有说明,如果是public,则可以直接访问,但随着MFC版本的变化,以后MFC可能不支持这些成员;第二列是访问属性;第三列是成员变量名称;第四列是成员变量的数据类型;第五列是对成员变量的功能、用途的简要描述。

应用程序类的成员变量

应用程序对象的数据成员表由两部分组成,第一部分是CWinThread的成员变量,如表5-6所示,CWinApp继承了CWinThread的数据成员。第二部分是CWinApp自己定义的成员变量,如表5-7所示。

表5-6 CwinThread的成员变量

 

访问限制

变量名称

类型

解释

public

m_bAutoDelete

BOOL

指定线程结束时是否销毁线程对象本身

public

m_hThread

HANDLE

当前线程的句柄

public

m_nThreadID

UINT

当前线程的ID

public

m_pMainWnd

CWnd*

指向应用程序主窗口的指针

public

m_pActiveWnd

CWnd*

当OLE SERVER就地激活时指向客户程序主窗口的指针

 

public

m_msgCur

MSG

当前消息(MSG结构)

 

public

m_pThreadParams

LPVOID

传递给线程开始函数的参数

 

public

m_pfnThreadProc

函数指针1

线程开始函数,AFX_THREADPROC类型

 

public

m_lpfnOleTermOrFreeLib

函数指针2

OLE用途,void (AFXAPI * fn)(BOOL,BOOL)

 

public

m_pMessageFilter

指针

OLE消息过滤,指向COleMessageFilter对象

 

protected

m_ptCursorLast

CPoint

最新鼠标位置

 

protected

m_nMsgLast

UINT

消息队列中最新接收到的消息

表5-7 CWinApp的成员变量

 

访问限制

变量名称

类型

解释

public

m_pszAppName

LPCTSTR

应用程序名称

public

m_hInstance

HINSTANCE

标志应用程序当前实例句柄

public

m_hPrevInstance

HINSTANCE

32位程序设为空

public

m_lpCmdLine

LPTSTR

指向应用程序的命令行字符串

public

m_nCmdShow

int

指定窗口开始的显示方式

public

m_bHelpMode

BOOL

标识用户是否在上下文帮助模式

public

m_pszExeName

LPCTSTR

应用程序的模块名

public

m_pszHelpFilePath

LPCTSTR

应用程序的帮助文件名,缺省时同模块名

public

m_pszProfileName

LPCTSTR

应用程序的INI文件名,缺省时同应用程序名

public

m_pszRegistryKey

LPCTSTR

Register入口,如果不指定,使用INI文件。

 

public

m_pDocManager;

CDocManager *

指向一个文档模板管理器

 

protected

m_hDevMode

HGLOBAL

打印设备模式

 

protected

m_hDevNames

HGLOBAL

打印设备名称

 

protected

m_dwPromptContext

DWORD

被MESSAGE BOX覆盖的帮助上下文

 

protected

m_nWaitCursorCount

int

等待光标计数

 

protected

m_hcurWaitCursorRestore

HCURSOR

保存的光标,在等待光标之后恢复

 

protected

m_pRecentFileList

指针

指向CRecentFileList对象,最近打开的文件列表

 

public

m_atomApp

ATOM

DDE用途

 

public

m_atomSystemTopic

m_atomApp

DDE用途

 

public

m_nNumPreviewPages

UINT

缺省被打印的页面

 

public

m_nSafetyPoolSize

size_t

理想尺寸

 

public

m_lpfnDaoTerm

函数指针

DAO初始化设置时使用

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:MFC 教程 MFC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接