根类:CObject

来源:互联网 发布:fsockopen php 编辑:程序博客网 时间:2024/06/06 21:41

  Microsoft基本类库中的大多数类都是由在类层次表中根上的唯一的一个基类派生而来的。CObject对所有由它派生出的类提供了一些有用的功能。如果要了解关于CObject和它的功能的更多信息,请参阅联机文档“Visual C++程序员指南”中的“CObject类主题”。CObject大多数MFC类的最终基类。支持串行化数据和获得一个类的运行时信息。CRuntimeClass用来在运行时确定一个对象的正确类的结构。

MFC应用结构类MFC应用构造类有助于一个框架应用的构造。它们对大多数应用提供了通用功能。可以在框架中填写对于应用特定的功能。典型地,可以从构造类派生新的类,然后添加新成员和/或覆盖已有的成员函数。AppWizard产生几种类型的应用,所有这些都以不同的方式使用应用框架。SDI(单文档界面)和MDI(多文档界面)应用充分利用了框架的一部分,即文档/视图框架。其它的应用类型,例如基于对话的应用、基于窗体的应用和DLL只使用了一些文档/视图框架功能。文档/视图应用包含了一个或多个文档、视图和框架窗口集。一个文档-模板对象将类与每一个文档/视图/框架集联系起来。尽管在MFC应用中不一定必须使用文档/视图结构,但是这样做却有很多好处。MFC的OLE包含器和服务器支持基于文档/视图结构。文档/视图结构同样也支持打印和打印预显。所有的MFC应用都至少有两个对象:一个由CWinApp派生出的应用对象和一些派生自CWnd的主窗口对象(大多数情况下,主窗口派生自Cframe Wnd,CMDIFrame或CDialog,所有这些又都派生自CWnd)使用文档/视图结构的应用包含附加对象。一些主要的对象如下:l 派生自CWinApp的应用对象,如前面提到的那样。l 或多个派生自CDocument的文档类对象。文档类对象负责视图中的数据操作的内部表示。它们可以与一个数据文件联系。l 或多个派生自CView的视图对象。每一个视图都是附加给一个文档

的窗口并且与一个框架窗口相关联。视图显示并且操纵包含在一个文档类对象中的数据。文档/视图应用还包含有框架窗口(派生自CFrameWnd)和文档模板(派生自CDocTemplate)。应用和线程支持类每一个应用都有一个也只有一个应用对象;在运行程序中,此对象与其它对象一起合作,它派生自CWinApp。在一个应用中,Microsoft基本类库支持多个执行线程。所有的应用都必须至少有一个线程。CWinApp对象使用的线程叫作“主要”线程。CWinTread封装了一部分操作系统的线程功能。为了更简便地使用多个线程,MFC还提供了同步对象类,提供一个与Win32同步对象的C++接口。应用和线程类CWinApp封装代码,初始化、运行和终止应用。可以由此类派生自己的应用类。CWinThread所有线程的基类。如果的线程执行界面函数,可以直接使用此类或从CWinTread派生一个类。

ISAPI应用类CHttpFilter过滤选择的HTTP请求,发送给ISAPI服务器。CHttpServer通过处理客户请求,扩展ISAPI服务器的功能。同步对象类CSyncObject同步对象类的基类。CCriticalSection同步类,它只允许一个进程中的一个线程访问对象。CSemaphore同步类,它允许在一个和特定的最大数之间的多个线程访问对象。CMutex同步类,它只允许在多个过程中的一个线程访问对象。CEvent当事件发生时,可以通知应用的同步类。CSingleLock联机线程安全类的成员函数中使用,封锁一个同步对象。CMultiLock联机线程安全类的成员函数中使用,封锁同步对象数组的一个或多个同步对象。

 

 

相关类CCommandLineInfo对程序开始的命令行进行文法分析。CWaitCursor在屏幕上放置一个等待光标。这是在需要较长时间的操作时使用的。CDockState处理控件条的停靠状态数据的永久存储。CRecentFileList保留最近使用的(MRU)文件列表。命令例程类当使用鼠标选择菜单或控制条按钮,并与应用交互时,应用把消息从受影响的界面对象发至合适的命令目标对象。命令目标对象从CcmdTarget派生出来,包括CWinApp,CWnd,CDocTemplate,CDocument,CView和它们派生的一些类。框架支持自动命令例程,这样,命令可被应用中活动的大多数相应的对象处理。CcmndUI的一个对象被传递给命令目标的更新命令UI(ON_UPDATE_COMMAND_UI)处理程序,这样就可以更新某个命令的界面的状态(例如,从菜单项中检查或移去选项)。可调用CcmdUI对象的成员函数,更新UI对象的状态。无论与某个命令相关的UI对象是菜单项或按钮或这两者,此进程都是相同的。CCmdTarget所有对象的类的基类,可接收消息,并对消息作出响应。CCmdUi提供可编程的接口来更新界面对象,如菜单项和控制条按钮。通过此对象,命令目标对象可允许、禁止、检查并/或清除接口对象。文档类文档类对象,由文档模板对象产生,管理应用的数据。可从其中的一个类给文档派生出一个类。文档类对象与视图类对象交互。视图对象表示窗口的客户区、显示文档的数据,并允许与之交互。文档和视图都是由文档模板对象产生的。CDocument应用程序指定的文档的基类,可从CDocument派生自己的文档。COleDocument用于实现复杂的文档,以及基本的包容器支持。它可用作CDocItem派生类的包容器。此类可用作包容器文档的基类,也是COleServerDoc的基类。COleLinkingDoc从COleDocment派生的类,提供连接的基础结构。如果希望支持到嵌入对象的链接,则应从此类派生出包容器应用的文档类,而不是从COleDocument派生。

CRichEditDoc维护丰富编辑控件中的OLE客户项列表,与CRichEditView和CrichEdit  CntrItem一起使用。COleServerDoc用作服务器应用文档类的基类。通过与COleServerItem对象交互,COleServerDoc对象提供大量的服务器支持。通过使用类库文档/视图结构,提供可视化编辑功能。相关类文档类对象可以是永久的——换句话说,可以把它们的状态写入存储介质中,然后读回。MFC提供CArchive类,实现把文档数据传输到存储介质的功能。CArchive与CFile对象协作,通过串行化(参阅CObject::Serialize),实现对象的永久存储。文档也可以包含OLE对象。CDocItem是服务器和客户项的基类。CDocItemCOleClientItem和COleServerItem的抽象基类。从CDocItem派生的类的对象表示文档的一部分。视图类(结构)CView及其派生类是一些子窗口,表示框架窗口的客户区。视图显示数据,并接收文档的输入。

通过使用文档模板对象,视图类与文档类和框架窗口类相关联。CView应用指定的文档数据视图的基类。视图显示数据并接收输入,以便编辑或选择数据。可从CView派生出视图类。CScrollView带滚动功能的视图的基类。可从CScrollView派生出视图类,实现自动滚动功能。窗体和记录视图窗体视图也是可滚动的视图,它们基于对话框模板。记录视图是从窗体视图派生出来的。除了对话框模板外,它们还可与数据库连接。CFormView滚动视图,其布局在对话框模板中定义。可从CFormView派生一个类,实现基于对话框模板的界面。CDaoRecordView提供一个窗体视图,直接与数据访问对象(DAO)记录集连接。像所有的窗体视图一样,CDaoRecordView也是基于对话框模板的。CRecordView提供一个窗体视图,直接与开放数据连接(ODBC)记录集连接。像所有的窗体视图一样,CRecordView也是基于对话框模板的。