MFC基础类库总结

Microsoft  基础类库

MFC 的文档包括对类的引用,全局函数,全局变量和宏组成该库,再加上由MFC开发团队收集书面的技术说明.

 MFC Reference (MFC 参考)
 MFC Technical Notes (MFC 技术说明)
 MFC Sample Programs (MFC 示例程序)
 Hierarchy chart (层次结构图)
 Hierarchy chart categories (类层次结构图)
 About the MFC classes (关于MFC类)

有趣的主页:

 Visual C++ Home (Visual C++ 首页)
 Adding User-Interface Features (添加用户界面功能)
 Adding Program Functionality (添加程序功能)
 Active Template Library (ATL) (活动模板库(ATL))
 OLE DB Templates (OLE DB 模板)


可视对象类:
 1窗口类:CWnd类
   CWnd提供了MFC中所有窗口类的基本功能,是CCmdTarget类的子类
   创建Windows窗口要分两步进行(1引入构造函数,构造一个CWnd对象2调用Create建立窗口并将它连接到CWnd对象上)
 2视类:CView类
  该类表示框架窗口的客户区和显示文档数据并接受输入的客户区其派生类主要有如下几种:
   CScrollView :具有滚动功能的视的基类
   CFormView:其布局再对话资源中定义的滚动
   CEditView:具有文本编辑、查找、替换和滚动功能的视
 3菜单类:CMenu类
  该类是CObject类的子类,用于管理菜单,它是一个Windows HMenu的封装,提供了与窗口有关的菜单资源建立、修改、跟踪及删除的成员函数。
 4对话框类:CDialog类
   由于对话框是一个特殊的窗口,所以该类是从CWnd类中派生出来的。对话框子层次结构包括通用对话框类CDialog以及支持文件选择、颜色选择、字体选择、打印、替换文本的公共对话框子类。
 5控件类
 控件子层次结构包括若干类,使用这些类可以建立静态文本、命令按钮、位图按钮、列表框、组合框、滚动条、编辑框等。这些直观控件为Windows应用程序提供了各种输入和显示界面。
 6控件条类:CControlBar类
  控件条子层次结构为工具条、状态条、对话条和分割窗口建立模型。该类是CToolBar、CStatusBar、CDialogBar的基类,负责管理工具条、状态条、对话条的一些成员函数。控件条指的是连接在主窗口框架的顶部或底部的小窗口。
 7绘画对象类:CGdiObject类
  图形绘画对象子层次结构以CGdiObject类为跟类,可用于建立绘画对象模型,如画笔、刷子、字体、位图、调色板等。
 8设备描述表类:CDC类
  该类及其子类支持设备描述表对象,是CObject类的子类。CDC类是一个较大的类,包括许多成员函数,如映射函数、绘画工具函数、区域函数等,通过CDC对象的成员函数可以完成所有的绘图工作。

 通用类
 此类提供了许多通用服务,例如文件I/O 、诊断和异常处理等。此外还包括如数组和列表等存放数据集的类
 1.文件类: CFile 和 CArchive类 用以编写输入输出处理函数
 2.异常类:CException类 是所有异常情况的基类不能直接建立CException对象,只能建立派生类的对象,用派生类来捕获指定的异常情况。
 3.模板收集类
 这些类可以将多种对象存放到数组、列表和“映射”中但这些收集类是模板,它们的参数确定了存放集合中的对象类型。

OLE类
 对象连接与嵌入子层次结构为支持OLE提供了9个类
 普通类 COleDocuemnt 、COleItem、COleException
 客户类 COleClientDoc 、COleClientItem
 服务器类 COleServer、COleTemplate、COServerDoc、COServerItem

ODBC数据库类
 开放数据库连接连接子层次结构提供了一些类来支持ODBC特征,即开通过这些类可开发数据库应用程序来访问多个数据库文件。

MFC中全局函数与全局变量
以Afx开头的函数除数据库类函数和DDX(Dialog Data Exchange)函数外,在目前的版本中,都表示是一个全局函数。以Afx为前缀的变量都是全局变量。
 函数                 功能
AfxAbort                 无条件终止一个应用程序
AfxBeginThread           创建一个新进程并执行他
AfxEndThread             终止当前正在执行的进程
AfxFormatString          格式化字符串
AfxMessageBox            显示一个Windows消息框
AfxGetApp                返回当前应用程序对象的指针
AfxGetInstanceHandle     返回标识当前对应程序对象的句柄
AfxRegisterWndClass      登记用于创建Windows窗口的窗口类

=====================================================================================================================
=====================================================================================================================
=====================================================================================================================
制作含编辑框的应用程序
编辑框在Windows风格的应用程序中是随处可见的 ,当需要获得来自用户的文本信息,或者要让用户输入或编辑文本时,应该使用编辑控件。

编辑框控件简介
  编辑框控件具有许多功能,Windows中的记事本(Notepad)应用程序就是一个带有控件菜单的编辑框控件
 
  编辑框控件(单行编辑框控件,多行编辑框控件)

CEdit 的层次结构
  +-CObject
    +-CCmdTarget
     +-CWnd
      +-CEdit
 编辑框控件类CEdit的结构很复杂,当创建CEdit对象时,MFC自动赋予该对象一个标准的Windows编辑控件它定义了CEdit对象。
 CEdit所在的头文件 Afxwin.h

  1.class CEdit::public CWnd
  2.{DECLARE_DYNAMIC(CEdit)
  //定义构造函数
  3.public;
  4.CEdit();
  5.BOOL Create(DWORD) dwStyle,const RECT&rect, CWnd*pParentWnd,UINT nID);
//成员函数
  6.BOOL CanUndo() const;
  7.int GetLineCount() const;
  8.BOOL GetModify() const;
  9.void SetModify(BOOL bModified=TRUE);
  10.void GetRect(LPRECT IpRect) const;
  11.DWORD GetSel() const;
  12.void GetSel(int& nStartChar,int& nEndChar) const;
  13.HLOCAL GetHandle() const;
  14.void SetHandle(HLOCAL hBuffer);
 //剪贴板操作
  BOOL Undo();
  void Clear();
  void Copy();
  void Cut();
  void Paste();

  BOOL SetReadOnly(BOOL bReadOnly = TRUE);
  int GetFirstVisibleLine() const;
  TCHAR GetPasswordChar() const;
 
 //Implementation
 public: Virtual ~CEdit(); //虚拟析构函数
};
 
通用CEdit类的方法
方法     说明
CanUndo()    决定一个编辑操作是否可以撤销
Clear()     从编辑控件中删除当前的选择(如果有的话)
Copy()                    将编辑控件当前的选择(如果有的话)以CF_TEXT格式赋值到剪切板中
Cut()     剪下编辑控件中的当前选择(如果有的话)并以CF_TEXT 格式复制到剪切板中
EmptyUndoBuffer()   消除一个编辑控件的“撤销”标志
GetFirstVisibleLine()     确定编辑控件中的最上面的可视行
GetModify()               确定一个编辑控件的内容是否可修改
GetPasswordChar()         当前用户输入文本是,获得编辑控件中显示的密码字符
GetRect()                 获得一个编辑控件的格式化矩形
GetSel()                  获得编辑控件中当前选择的开始和结束字符位置
LimitText()               限定用户可能输入一编辑控件的文本长度
LineFromChar()            获得包含指定字符下标的行的行号
LineLength()              获得编辑控件中的一行的长度
LineScroll()              滚动多行编辑控件的文本
Paste()                   将剪贴板的数据插入到编辑控件作当前的光标位置,只有当前剪切板中数据格式为CE_TEXT是方可插入
ReplaceSel()              用指定文本替代编辑控件中当前选择的部分
SetModify()    设置或清除编辑控件的修改标志
SetPasswordChar()         当用户输入文本时设置或删除一个显示与编辑控件中的密码字符
SetReadOnly()    将编辑控件设置为只读状态
SetSel()                  再编辑控件中选择字符的范围
Undo()                    取消最后一个编辑控件操作
  
多行编辑所支持的CEdit法
方法   说明
FmtLines()              设置在多行编辑控件中包含软件分行符
GetHandle()   获得当前分配给一个多行编辑控件的内存的句柄

你可能感兴趣的:(MFC)