MFC库类

    MFC 实际上是微软提供的,用于在 C++ 环境下编写应用程序的一个框架和引擎。 VC++ Windows 下开发人员使用的专业 C++ SDK ( SDK,Standard SoftWare Develop Kit,专业软件开发平台 ),MFC就是挂在它之上的一个辅助软件开发包。MFC作为与VC++血肉相连的部分(注意C++和VC++的区别:C++是一种 程序设计语言 ,是一种大家都承认的软件编制的通用规范;而VC++只是一个 编译器 ,或者说是一种编译器+源程序 编辑器 的IDE,WSPlatForm,这跟 Pascal Delphi 的关系一个道理。Pascal是Delphi的语言基础,Delphi使用Pascal规范来进行Win下应用程序的开发和编译,却不同于 Basic 语言和 VB 的关系。Basic语言在VB开发出来被应用的年代已经成了Basic语言的新规范,VB新加的Basic语言要素,如 面向对象程序设计 的要素,是一种性质上的飞跃,使VB既是一个IDE,又成长成一个新的程序设计语言)。MFC同BC++集成的VCL一样是一个非外挂式的 软件包 类库,只不过MFC类是微软为VC++专配的。
   MFC是Win API与C++的结合。 API,即微软提供的Windows下应用程序的 编程语言 接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方(如我是一方,微软是一方,Borland就是第三方)的编程语言来进行对Windows下应用程序的开发,使这些被开发出来的应用程序能在Windows下运行,比如VB、VC++、 Java 、Delhpi。编程语言 函数 本质上全部源于API,因此用它们开发出来的应用程序都能工作在Windows的 消息机制 和绘图里,遵守Windows作为一个 操作系统 的内部实现,这其实也是一种必要。微软如果不提供API,这个世上对Windows编程的工作就不会存在,微软的产品就会迅速从时尚变成垃圾。上面说到MFC是微软对API函数的专用C++封装,这种结合一方面让用户使用微软的专业C++ SDK来进行Windows下应用程序的开发变得容易,因为MFC是对API的封装,微软做了大量的工作,隐藏了好多程序开发人员在Windows下用C++& MFC编制软件时的大量内节,如应用程序实现消息的处理、设备环境绘图,这种结合是以方便为目的的,必定要付出一定代价(这是微软的一向作风),因此就造成了MFC对类封装中的一定程度的的冗余和迂回,但这是可以接受的。
  最后要明白MFC不只是一个功能单纯的 界面 开发系统,它提供的类绝大部分用来进行界面开发,关联一个窗口的动作,但它提供的类中有好多类不与一个窗口关联,即类的作用不是一个界面类,不实现对一个窗口对象的控制(如创建、销毁),而是一些在Windows(用MFC编写的程序绝大部分都在Windows中运行)中实现内部处理的类,如 数据库 的管理类等。学习中最应花费时间的是消息和设备环境,对C++和MFC的学习中最难的部分是指针,C++面向对象程序设计的其它部分,如数据类型、 流程控制 都不难,建议学习 数据结构 C++版。
  MFC是微软封装了的API。什么意思呢?Windows作为一个提供功能强大的 应用程序接口 编程的操作系统,的确方便了许多 程序员 ,传统的win32开发(直接使用Windows的 接口函数 API)对于程序员来说非常的困难,因为,API函数实在太多了,而且名称很乱,从零构架一个窗口动辄就是上百行的代码。MFC是面向对象程序设计与Application framework的完美结合,他将传统的API进行了分类封装,并且为你创建了程序的一般框架。
  MFC是对WindowsAPI的封装,大大简化了我们的工作;学VC主要就是要学MFC,大约有100多个类,但常用的也就二三十个。应该象背4级单词一样将这些常用类搞懂;当然不要死记,要通过看帮助、看例子、动手练习来学会它们;而且,并非每个类的内部的所有函数都要学会,要日积月累。如果真的想成为高手,做个 笔记本 把自己认为重要的类、函数记下来,随时学习,也是很好的突击方法。

重要的MFC:

       CWnd:窗口,它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton等等;一个例外是菜单(CMenu)不是从窗口派生的。该类很大,一开始也不必学,知道就行了。
  CDocument文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(序列化读写)。
  CView视图,负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应等等)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、 快捷键 和其他用户消息。你自己的许多功能都要加在里面,你打交道最多的就是它。
  CDC设备文本。无论是显示器还是打印机,都是画图给用户看。这图就抽象为CDC。CDC与其他GDI( 图形设备接口 )一起,完成文字和图形、图像的显示工作。把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画窗口。CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC完成。
  CDialog对话框
  CWinApp应用程序类。似于C中的 main函数 ,是程序执行的入口和管理者,负责程序建立、消灭,主窗口和文档模板的建立。最常用函数InitInstance():初始化。
  CGdiObject及子类,用于向设备文本画图。它们都需要在使用前选的DC。
  CPen笔,画线。
  CBrush刷子,填充。
  CFont 字体 ,控制文字输出的字体。
  CBitmap位图
  CPalette 调色板
  CRgn区域,指定一块区域可以用于做特殊处理。
  CFile文件。最重要的不外是Open(打开),Read(读入),Write(写)。
  CString字符串。封装了C中的字符 数组 ,非常实用。
  CPoint点,就是(x,y)对。
  CRect矩形,就是(left,top,right,bottom)。
  CSize大小,就是(cx,cy)对(宽、高)。

MFC所有类及其头文件

  CAnimateCtrl 自动化通用控件 afxcmn.h
  CArchive afx.h
  CArchiveException afx.h
  CArray afxtempl.h
  CAsyncMonikerFile 在ActiveX控件中提供对异步标记的支持 afxole.h
  CAsyncScoket 封装Windows Sockets API,参看CSocket afxsock.h
  CBitmap afxwin.h
  CBitmapButton afxext.h
  CBrush afxwin.h
  CButton 按钮控件对象 afxwin.h
  CByteArray afxcoll.h
  CCachedDataPathProperty 允许一个ActiveX控件异步传输属性数据和缓冲内存中的数据,参考CDataPathProperty afxctl.h
  CCheckListBox afxwin.h
  CClientDC afxwin.h
  CCmdTarget 所有能够接收和响应消息的对象的基类 afxwin.h
  CCmdUI afxwin.h
  CColorDialog 颜色选择的通用对话框,提供为显示系统定义的颜色列表 afxdlgs.h
  CComboBox 组合框对象 afxwin.h
  CComboBoxEx CComboBox类的派生类,用于支持在组合框控件中的图像列表 afxcmn.h
  CCommandLineInfo afxwin.h
  CCommonDialog afxdlgs.h
  CConnectionPoint afxdisp.h
  CControlBar afxext.h
  CCreateContext afxext.h
  CCriticalSection afxmt.h
  CCtrlView afxwin.h
  CDaoDatabase afxdao.h
  CDaoException afxdao.h
  CDaoFieldExchange afxdao.h
  CDaoQueryDef afxdao.h
  CDaoRecordset 代表选自数据源的记录集。CDaoRecordset对象可用于三种格式:表类型记录集,动态集类型记录集和快照类型记录集 afxdao.h
  CDaoRecordView 提供表单视图,以在控件中显示数据库记录。表单视图是CDaoRecordset对象的一部分。参考CFormView和CRecordView afxdao.h
  CDaoTableDef afxdao.h
  CDaoWorkspace afxdao.h
  CDatabase afxdb.h
  CDataExchange afxwin.h
  CDataPathProperty 实现一个ActiveX控件属性,它能够异步加载其数据。这个类允许ActiveX控件在后台下载属性数据时被激活 afxctl.h
  CDateTimeCtrl 封装新的日期/时间选取器控件 afxdtctl.h
  CDBException afxdb.h
  CDBVariant afxdb.h
  CDC afxwin.h
  CDialog 用于包含控件窗口的对话框对象 afxwin.h
  CDialogBar afxext.h
  CDocItem afxole.h
  CDockState afxadv.h
  CDocObjectServer afxdocob.h
  CDocObjectServerItem afxdocob.h
  CDocTemplate afxwin.h
  CDocument 用于管理程序的数据的类 afxwin.h
  CDragListBox Windows列表框,允许用户把其中的项拖放到不同的位置 afxcmn.h
  CDumpContext afx.h
  CDWordArray afxcoll.h
  CEdit 用于文本输入的子窗口控件 afxwin.h
  CEditView 提供Windows编缉控件的功能。因为CEditView派生于Cedit,该对象可同文件和文件模板一同使用 afxext.h
  CEvent afxmt.h
  CException afx.h
  CFieldExchange afxdb.h
  CFile afx.h
  CFileDialog 通用文件对话框,提供Open和Save As对话框中的功能 afxdlgs.h
  CFileException afx.h
  CFileFind afx.h
  CFindReplaceDialog afxdlgs.h
  CFont afxwin.h
  CFontDialog 通用字体对话框,用于显示当前已装入系统的字体列表 afxdlgs.h
  CFontHolder afxctl.h
  CFormView 包含对话框控件的窗口 afxext.h
  CFrameWnd SDI(单窗口界面)框架窗口 afxwin.h
  CFtpConnection afxinet.h
  CFtpFileFind afxinet.h
  CGdiObject afxwin.h
  CGopherConnection afxinet.h
  CGopherFile afxinet.h
  CGopherFileFind afxinet.h
  CGopherLocator afxinet.h
  CHeaderCtrl 标题通用控件 afxcmn.h
  CHotKeyCtrl 热键通用控件 afxcmn.h
  CHtmlStream afxisapi.h
  CHtmlView 实现Web Browser控件的视图类,能够访问当地或Web上的HTML文件。 afxhtml.h
  CHttpConnection afxinet.h
  CHttpFile afxinet.h
  CHttpFilter 创建并处理超文传输协议过滤器对象,该对象用于过滤用于HTTP请求的服务器通知 afxisapi.h
  CHttpFilterContext afxisapi.h
  CHttpServer Internet Server API(ISAPI)的包装类 afxisapi.h
  CHttpServerContext afxisapi.h
  CImageList afxcmn.h
  CInternetConnection afxinet.h
  CInternetException afxinet.h
  CInternetFile afxinet.h
  CInternetSession afxinet.h
  CIPAddressCtrl IP地址控件。类似于编缉框,该控件接收Internet 协议格式的地址 afxcmn.h
  CList afxtempl.h
  CListBox 列表框对象 afxwin.h
  CListCtrl 列表视通用控件 afxcmn.h
  ClistView 简化CListCtrl的使用,添加了对文件和视图的支持 afxcview.h
  CLongBinary afxdb_.h
  CMap afxtempl.h
  CMapPtrToPtr afxcoll.h
  CMapPtrToWord afxcoll.h
  CMapStringToOb afxcoll.h
  CMapStringToPtr afxcoll.h
  CMapStringToString afxcoll.h
  CMapWordToOb afxcoll.h
  CMapWordToPtr afxcoll.h
  CMDIChildWnd MDI(多文档界面)子框架窗口 afxwin.h
  CMDIFrameWnd afxwin.h
  CMemFile afx.h
  CMemoryException afx.h
  CMemoryState
  CMenu afxwin.h
  CMetaFileDC afxext.h
  CMiniFrameWnd 半高的框架窗口,主要用于浮动工具栏。一个小框架窗口没有最小化和最大化按钮,但其他都类似于正常的框架窗口 afxwin.h
  CMonikerFile afxole.h
  CMonthCalCtrl 月历控件,用于显示一个用户可选择日期的日历 afxdtctl.h
  CMultiDocTemplate afxwin.h
  CMultiLock afxmt.h
  CMutex afxmt.h
  CNotSupportedException afx.h
  CObArray afxcoll.h
  CObject afx.h
  CObList afxcoll.h
  COleBusyDialog afxodlgs.h
  COleChangeIconDialog afxodlgs.h
  COleChangeSourceDialog afxodlgs.h
  COleClientItem afxole.h
  COleCmdUI afxdocob.h
  COleControl afxctl.h
  COleControlModule afxctl.h
  COleConvertDialog afxodlgs.h
  COleCurrency afxdisp.h
  COleDataObject afxole.h
  COleDataSource afxole.h
  COleDateTime afxdisp.h
  COleDateTimeSpan afxdisp.h
  COleDBRecordView afxoledb.h
  COleDialog afxodlgs.h
  COleDispatchDriver afxdisp.h
  COleDispatchException afxdisp.h
  COleDocObjectItem afxole.h
  COleDocument 把一个文件看作为CDocItem对象的一个集合。包容器和服务器都需要这个结构,因为它们的文件必须能够包含OLE项 afxole.h
  COleDropSource afxole.h
  COleDropTarget afxole.h
  COleException afxdisp.h
  COleInsertDialog afxodlgs.h
  COleIPFrameWnd afxole.h
  COleLinkingDoc OLE包容器文件的基类,这些文件支持对它们所包含项的链接 afxole.h
  COleLinksDialog afxodlgs.h
  COleMessageFilter afxole.h
  COleObjectFactory afxdisp.h
  COlePasteSpecialDialog afxodlgs.h
  COlePropertiesDialog afxodlgs.h
  COlePropertyPage afxctl.h
  COleResizeBar afxole.h
  COleSafeArray afxdisp.h
  COleServerDoc OLE服务器文件的基类 afxole.h
  COleServerItem 为OLE项提供一个服务器界面 afxole.h
  COleStreamFile afxole.h
  COleTemplateServer afxdisp.h
  COleUpdateDialog afxodlgs.h
  COleVariant afxdisp.h
  CPageSetupDialog afxdlgs.h
  CPaintDC afxwin.h
  CPalette afxwin.h
  CPen afxwin.h
  CPictureHolder afxctl.h
  CPoint atltypes.h
  CPrintDialog 通用打印对话框,提供Print和Print Setup对话框中的功能 afxdlgs.h
  CPrintInfo
  CProgressCtrl 通用进程指示器控件 afxcmn.h
  CPropertyPage 代表属性表单中的一页 afxdlgs.h
  CPropertyPageEx
  CPropertySheet 属性表,也叫做多选项卡对话框。一个属性表由一个CPropertySheet对象和几个CPropertyPage对象组成 afxdlgs.h
  CPropertySheetEx
  CPropExchange afxctl.h
  CPtrArray afxcoll.h
  CPtrList afxcoll.h
  CReBar afxext.h
  CReBarCtrl afxcmn.h
  CRecentFileList afxadv.h
  CRecordset 用于访问数据库表或查询的类 afxdb.h
  CRecordView 包含对话框控件的窗口 afxdb.h
  CRect atltypes.h
  CRectTracker afxext.h
  CResourceException afxwin.h
  CRgn afxwin.h
  CRichEditCntrItem afxrich.h
  CRichEditCtrl 用户能够输入和编缉文本的窗口,提供字符和程序段格式,以及对嵌入OLE项的支持 afxcmn.h
  CRichEditDoc afxrich.h
  CRichEditView afxrich.h
  CRuntimeClass
  CScrollBar 滚动条对象 afxwin.h
  CScrollView 可滚动的窗口,派生于CView afxwin.h
  CSemaphore afxmt.h
  CSharedFile afxadv.h
  CSingleDocTemplate afxwin.h
  CSingleLock afxmt.h
  CSize atltypes.h
  CSliderCtrl 提供包含一个滑块和可选的刻度线的窗口 afxcmn.h
  CSocket Windows Socket API的包装类 afxsock.h
  CSocketFile afxsock.h
  CSpinButtonCtrl 提供箭头按钮,用户可单击它,以增加或减少某个控件中的一个值 afxcmn.h
  CSplitterWnd afxext.h
  CStatic 用于标识另一个控件或给用户提供消息的简单文本框 afxwin.h
  CStatusBar afxext.h
  CStatusBarCtrl 提供一个层次窗口,通常放于父窗口的底部,用于显示关于应用程序的状态信息 afxcmn.h
  CStdioFile afx.h
  CString afx.h
  CStringArray afxcoll.h
  CStringList afxcoll.h
  CSyncObject afxmt.h
  CTabCtrl 允许应用程序在一个窗口或对话框的同一区域显示多个页面 afxcmn.h
  CTime afx.h
  CTimeSpan afx.h
  CToolBar afxext.h
  CToolBarCtrl 工具栏通用控件 afxcmn.h
  CToolTipCtrl 提供工具提示控件的功能,它以一个小弹出窗口的样子显示,包含描述某个工具用途的一行文本 afxcmn.h
  CTreeCtrl 显示项的分层结构列表 afxcmn.h
  CTreeView 简化CTreeCtrl的用法 afxcview.h
  CTypedPtrArray afxtempl.h
  CTypedPtrList afxtempl.h
  CTypedPtrMap afxtempl.h
  CUIntArray afxcoll.h
  CUserException afxwin.h
  CView 用于显示程序数据的类 afxwin.h
  CWaitCursor afxwin.h
  CWinApp afxwin.h
  CWindowDC afxwin.h
  CWinThread 代表一个应用程序中的一个线程 afxwin.h
  CWnd afxwin.h
  CWordArray afxcoll.h
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值