MFC的内部总共有六大关键技术,架构起了整个MFC的开发平台。

MFC的六大关键技术包括:

a)MFC程序的初始化过程;

b)消息映射机制;

c)运行时类型识别(RTTI);

d)动态创建;

e)永久保存;

f)消息传递。

{六大关键技术的目的是为了提高开发效率,开发者只要在局部做简单地修改,即可处理大部分窗口事物。}

四:消息映射机制

Win32工程的消息处理机制,就是每个窗口都关联一个全局的消息回调函数。再在消息回调函数中,通过对各种不同消息类型识别和分流来响应不同的消息。MFC的消息处理不使用全局的回调函数,而是创建一个与窗口关联的派生类,用与消息关联的成员函数来接收和处理窗口的消息。在类向导中选择对应的消息,添加与该消息关联的成员函数来处理该消息,这就是MFC的消息映射机制。

在Win32的消息处理机制中,每一个消息类型(uMsg)发送到窗口内时,可能在wParam和lParam中携带一些相关的数据。例如:WM_COMMAND的消息中,在wParam中记录了点击的按钮或者菜单项等的ID号码。而在WM_LBUTTONDOWN的消息中,在lParam中记录了点击界面的(x,y)坐标等等。Win32解析这些附带数据的过程比较繁琐,需要阅读MSDN手册中详细的说明资料。

主要成员

成员说明

BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );

创建编辑控件,

并将其窗口句柄把保存在m_hWd中

void Clear( );

清空编辑框中的文字

void Copy( );

复制选中的文字到剪切板中

void Cut( );

剪切选中的文字到剪切板中

void Paste( );

将剪切板内的文字粘贴到编辑框中

BOOL Undo( );

撤销上一次操作

BOOL CanUndo( ) const;

是否可以撤销

void GetSel( int& nStartChar, int& nEndChar ) const;

获取被选中文字的起始位置

DWORD GetSel( ) const;

获取被选中文字的起始位置

void SetSel( int nStart, int nEnd, BOOL bNoScroll = FALSE );

设置被选中文字的起始位置

void ReplaceSel( LPCTSTR lpszNewText, BOOL bCanUndo = FALSE );

用指定文字替换被选中的文字

int GetLineCount( ) const;

获取多行编辑控件中的文字行数

void SetModify( BOOL bModified = TRUE );

设置或清除修改标记

BOOL GetModify( ) const;

获取内容是否被修改的标记

五:MFC的架构组成

MFC所有封装类一共200多个,但是MFC的内部技术不只是简单的封装。MFC的内部总共有六大黑箱技术架构起整个MFC的开发平台。六大关键技术的目的是为了提高开发效率,开发者只要在局部做简单地修改,即可处理大部分窗口事物。

1、MFC的六大关键技术包括:MFC程序的初始化过程、运行时类型识别(RTTI)、动态创建、永久保存、消息映射和消息传递。

2、不借助“MFC AppWizard”手工建立MFC程序只需几个步骤:

a)从CWinApp类派生一个应用程序类;

b)使用派生类定义的全局变量(theApp);

c)在预定义头文件“stdafx.h”中,禁用“windows.h”取而代之afx开头的MFC头文件;

d)编译设置中选择用“Use MFC in a Static Library”;

e)在CWinApp生类中,重写InitInstance函数作为程序启动代码。

mfc操作方式(MFC原理介绍四)(1)

,