DECLARE_MESSAGE_MAP, BEGIN_MESSAGE_MAP, ON_WM_*, END_MESSAGE_MAP) 將 Windows 消息 (WM_*) 映射到派生類成員函數 (On*)。CDocument) 也能處理命令消息;無需 C++ 語言擴展;ClassWizard 自動生成映射條目、函數原型、函數體框架。afx_msg void OnXxx(...);DECLARE_MESSAGE_MAP()BEGIN_MESSAGE_MAP(CMyView, CView) ... END_MESSAGE_MAP()void CMyView::OnXxx(...) { ... }文檔 = 後台數據庫 (數據模型、業務邏輯、持久化)。
視圖 = 前台界面 (繪圖、編輯控件、打印輸出)。
同一文檔可掛接多視圖:CSplitterWnd 動態分割、CMultiDocTemplate 多文檔多視圖。文檔變更調用 UpdateAllViews 通知所有視圖重繪。
CView 核心認知CView 派生自 CWnd,擁有幾百個成員函數。OnDraw, OnInitialUpdate, OnPrepareDC, OnScroll*...)。view.cpp, view.h, winmgr.cpp... 看多少算多少,不白看。| 文件 | 角色 |
|---|---|
| MyApp01View.h / .cpp | 視圖類 CMyApp01View 定義與實現 **核心** |
| MyApp01Doc.h / .cpp | 文檔類 CMyApp01Doc 定義與實現 |
| MainFrm.h / .cpp | 主框架窗口 CMainFrame |
| MyApp01.h / .cpp | 應用程式類 CMyApp01App |
| StdAfx.h / .cpp | 預編譯頭 |
| Resource.h | 資源 ID 定義 |
| MyApp01.rc | 資源腳本 |