本系列基於潘愛民、王國印譯《VC++技術內幕》第四版(清華大學出版社)。建議先具備 Windows SDK 32 位編程基礎,能用純 API 寫出簡單視窗程式,再啟動本書學習效果最佳。
WinMain,負責註冊窗口類、創建主窗口、進入消息循環。WinMain 隱藏在框架內部 (appmodul.cpp),開發者直接繼承 CWinApp 並重寫 InitInstance 即可。| 消息 | 觸發時機 | 典型處理 |
|---|---|---|
| WM_CREATE | 窗口創建時 | 初始化資源、創建子控件 |
| WM_LBUTTONDOWN | 滑鼠左鍵按下 | 拖曳開始、點擊響應 |
| WM_CHAR | 鍵盤字符輸入 | 文本編輯、快捷鍵 |
| WM_CLOSE | 用戶點擊關閉按鈕 | 提示保存、銷毀窗口 |
| WM_COMMAND | 菜單/按鈕/加速鍵 | 命令分發 |
| WM_TIMER | 定時器到期 | 動畫、輪詢、自動保存 |
| 副檔名 | 用途 | 可否手動編輯/刪除 |
|---|---|---|
| .aps | Resource View 狀態 | 可刪,重開專案自動重建 |
| .bsc | 瀏覽器資訊 (供 Source Browser) | 可刪,重新建立瀏覽資訊後重建 |
| .clw | ClassWizard 資訊 | **不可手動編輯**,新增類後需重建 |
| .dsp | 專案文件 (VC6) | **不可手動編輯/刪除** |
| .dsw | 工作空間文件 | **不可手動編輯/刪除** |
| .mak | 外部 Makefile (NMake 用) | 可編輯,但通常由 IDE 維護 |
| .ncb | Class View 資訊 | 可刪,重開專案自動重建 |
| .opt | 工作空間配置 (開啟文件、佈局) | 可刪 |
| .plg | 建置日誌 | 可刪 |
快捷鍵:Alt+F12 打開瀏覽視窗。四大核心視圖:
**實戰建議**:接手陌生專案時,先用 Class View 找到核心類,再用 Source Browser 的 Base Class Graph 看清繼承鏈,再用 Call Graph 梳理關鍵流程,效率提升 10 倍。
CMyApp, CMainFrame, CMyDoc, CMyView,觀察繼承關係。CMyView → Alt+F12 → Base Class and Members,查看從 CView 繼承的海量虛函數。**雷神心法**:「不動手不編程」。每個示例必須手敲、編譯、運行、修改、再運行。將 Hello World 換成自己的簽名,感受 MFC 框架自動生成的菜單、工具列、狀態列、關於對話框、列印預覽……這就是「站在巨人肩膀上」的具體感受。
Day 2:Microsoft 基礎類庫應用程式框架—— CWinApp, CFrameWnd, CDocument, CView 四大核心類的協作關係,以及兩個從零手寫的最小 MFC 程式對比。