跳转到内容

Windows 编程/类层次结构

来自维基教科书,开放的书籍,开放的世界

MFC 类层次结构

[编辑 | 编辑源代码]

大多数 MFC 库的根/基类。它为程序员提供的一些功能包括序列化支持、运行时类信息和对象诊断输出。从 CObject 派生的任何类都可以利用这些功能。

CObject 类 在 AFX.H 中

字段摘要

static const AFX_CORE_DATA CRuntimeClass classCObject 
          

构造函数摘要

protected  CObject() 
          
private  CObject( const CObject& objectSrc ) 
          
 virtual ~CObject() 


方法摘要

void PASCAL operator delete( void* p ) 
          
virtual CRuntimeClass* GetRuntimeClass() const 
          
BOOL IsKindOf( const CRuntimeClass* pClass ) const 
          
BOOL IsSerializable() const 
          
void* PASCAL operator new( size_t, void* p ) 
          
void* PASCAL operator new( size_t nSize ) 
          
virtual void Serialize( CArchive& ar )

CCmdTarget

[编辑 | 编辑源代码]

CWinThread

[编辑 | 编辑源代码]

CListCtrl

[编辑 | 编辑源代码]

此类封装了列表视图控件的功能,列表视图控件是一种显示项目集合的控件,每个项目都包含一个图标和一个标签。

CListCtrl 类 在 AFXCMN.H 中


CObject

  |
  +--CCmdTarget
        |
        +--CWnd
              |
              +--CListCtrl

class CListCtrl 扩展 CWnd

从 CWnd 类继承的字段

m_hWnd, wndTop, wndBottom, wndTopMost, wndNoTopMost, m_hWndOwner, m_nFlags, m_pfnSuper, m_nMsgDragList, m_nModalResult, m_pDropTarget, m_pCtrlCont, m_pCtrlSite, messageMap 

从 CCmdTarget 类继承的字段

messageMap, commandMap, dispatchMap, connectionMap, interfaceMap, eventsinkMap, m_dwRef, m_pOuterUnknown, m_xInnerUnknown, m_xDispatch, m_bResultExpected, m_xConnPtContainer 

从 CObject 类继承的字段

classCObject

此类封装了工具栏的功能,工具栏是一排位图按钮和/或分隔符。CToolBar 对象通常是继承自 CFrameWnd 或 MDIFrameWnd 类的框架窗口对象的嵌入成员。

CTreeCtrl

[编辑 | 编辑源代码]

CException

[编辑 | 编辑源代码]

CGdiObject

[编辑 | 编辑源代码]

CHttpArgList

[编辑 | 编辑源代码]

子类化

[编辑 | 编辑源代码]

自定义类行为的标准技术

窗口子类化

[编辑 | 编辑源代码]

窗口消息路由

[编辑 | 编辑源代码]

MFC 路由消息的机制也被称为消息映射系统,该系统是为了封装旧的 C API 并降低程序员的复杂程度而创建的。

// a Message Map example

BEGIN_MESSAGE_MAP( ClNOMainFrameWnd, CFrameWnd )
  ON_WM_SYSCOMMAND()
  ON_WM_CREATE()
  ON_WM_SIZE()
  ON_WM_CLOSE()
  ON_WM_MEASUREITEM()
  ON_WM_INITMENUPOPUP()
  ON_WM_MENUCHAR()
  ON_WM_DESTROY()

  ON_REGISTERED_MESSAGE( D_WM_REQUEST, OnMsgReqToShowWnd )

  ON_COMMAND( ID_APP_TRAYCLICK, OnTrayClick )
  ON_MESSAGE( C_WM_TIPACTION, OnTipOfTheDayAction )

END_MESSAGE_MAP()

消息映射

[编辑 | 编辑源代码]

消息映射宏

ON_COMMAND 和 ON_BN_CLICKED
ON_COMMAND 和 ON_BN_CLICKED 是相同的,MFC 命令和控件宏预设为处理 Windows 消息 WM_COMMAND,而通知路由机制使用命令 ID 来决定路由到哪里。具有为零(BN_CLICKED)的控件通知代码的通知被解释为命令。
ON_UPDATE_COMMAND_UI
ON_UPDATE_COMMAND_UI 宏。

组件对象模型 (COM)

[编辑 | 编辑源代码]
华夏公益教科书