Windows Programming/Classes Hierarchy

MFC Classes Hierarchy

edit

CObject

edit

The root/base class for most of the MFC library. Some of the features it makes available to the programmer are serialization support, run-time class information, and object diagnostic output. Any derived class from CObject, can exploit these features.

Class CObject in AFX.H

Field Summary

static const AFX_CORE_DATA CRuntimeClass classCObject 
          

Constructor Summary

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


Method Summary

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

edit

CWinThread

edit

CWinApp

edit

CWnd

edit

CListCtrl

edit

This class encapsulates the functionality of a list view control, which is a control that displays a collection of items, each consisting of an icon and a label.

Class CListCtrl in AFXCMN.H


CObject

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

class CListCtrl extends CWnd

Fields inherited from class CWnd

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

Fields inherited from class CCmdTarget

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

Fields inherited from class CObject

classCObject

CToolBar

edit

This class encapsulates the functionality of a control bars that have a row of bitmapped buttons and/or separators. CToolBar objects are usually embedded members of frame-window objects derived from the class CFrameWnd or MDIFrameWnd.

CTreeCtrl

edit

CException

edit

CArray

edit

CFile

edit

CGdiObject

edit

CFont

edit

CHttpArgList

edit

Subclassing

edit

standard technique for customizing the behavior of a class

Window Subclassing

edit

Window message route

edit

The mechanism by which MFC routes messages is also called the Message Map system that was created to wrap the old C API and reduce the level of complexity for programmers.

// 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()

Message map

edit

The message map macros:

ON_COMMAND and ON_BN_CLICKED
the ON_COMMAND and ON_BN_CLICKED are the same, MFC command and control macro is preset to handle the Windows message WM_COMMAND and the notification routing mechanism uses the command ID to decide where to route to. Notifications with control notification code of zero (BN_CLICKED) are interpreted as commands.
ON_UPDATE_COMMAND_UI
the ON_UPDATE_COMMAND_UI macro.

Component Object Model (COM)

edit