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函数作为程序启动代码。
,