C++程序设计教程 MFC简介2
C++程序设计教程 MFC简介2
1. Runt imec|ass执行期类型识别 1) CRuntimeClass struct CRuntimeClass LPCSTR m pszclassName i CRuntimeClass* m pBaseClass; static CRuntimeClass* fIrstclass; CRuntimeClass* m pNextclass CObject CCmdTarget CWnd NULL m pBaseclass m pBase Class m pBaseclass m pNextclass m pNextclass m pNextclass
1.RuntimeClass 执行期类型识别 1) CRuntimeClass struct CRuntimeClass { LPCSTR m_lpszClassName; CRuntimeClass* m_pBaseClass; static CRuntimeClass* pFirstClass; CRuntimeClass* m_pNextClass; }; CObject m_pBaseClass m_pNextClass CCmdTarget m_pBaseClass m_pNextClass CWnd m_pBaseClass m_pNextClass NULL
2. Serialize串行化 M CArchive void CMy Doc: Serialize(CArchive& ar) if(ar.工 sToring() ar<<(WORD) m sizeD。c; else / loading ar >> (word&)m sizeDoc
2.Serialize 串行化 CArchive void CMyDoc::Serialize(CArchive& ar) { if ( ar.IsStoring() ) ar << (WORD)m_sizeDoc; else // loading ar >> (WORD&)m_sizeDoc; }
3 Message Mapp ing消息映射 1) DECLARE MESSAGE MAP O 2) BEGIN MESSAGE MAP ON COMMAND(… END MESSAGE MAPO 3) CWinApp 工nit工 ns tance() Run o ExitInstance o
3.Message Mapping 消息映射 1) DECLARE_MESSAGE_MAP() 2) BEGIN_MESSAGE_MAP() ON_COMMAND(……) END_MESSAGE_MAP() 3) CWinApp InitInstance() Run() ExitInstance()
4.MC类的层次结构 class cobject class CCmdTarget public cobject class cWinThread public CCmdTarget class cwinApp public CWinThread class CMyWinApp public CWinApp class CWnd: public CCmdTarget class Cview public CWnd class CMyView public CView class CFrameWnd: public CWnd class CMainFrame public CFrameWnd class CDocument public CCmdTarget class CMy Doc public CDocument
4. MFC类的层次结构 class CObject class CCmdTarget : public CObject class CWinThread : public CCmdTarget class CWinApp : public CWinThread class CMyWinApp : public CWinApp class CWnd : public CCmdTarget class CView : public CWnd class CMyView : public CView class CFrameWnd : public CWnd class CMainFrame : public CFrameWnd class CDocument : public CCmdTarget class CMyDoc : public CDocument