新建一個基於對話框的MFC應用程序,假設命名為 Test:則該應用程序在剛創建的時候,有4個非常重要的文件和3個類:
4個非常重要的文件 | |
1、Test.h 2、Test.cpp |
(應用程序類頭文件) (應用程序類實現文件) |
3、TestDlg.h 4、TestDlg.cpp |
(對話框類頭文件) (對話框類實現文件) |
類名 | 定義所在位置 | 類的實現代碼所在位置 |
CTestApp | Test.h | Test.cpp |
CTestDlg | TestDlg.h | TestDlg.cpp |
CAboutDlg | TestDlg.cpp | TestDlg.cpp |
每個文件中的內容:
1、 Test.h: |
(1)#pragma once + 非活動預處理 + 各種包含(resource.h + 后續各種類的頭文件); (2)CTestApp類的定義(構造函數、重寫InitInstance函數,聲明消息映射表); (3)extern CTestApp theApp(聲明了一個應用程序對象); |
2、 Test.cpp: |
(1)各種包含頭文件(stdafx.h + Test.h + TestDlg.h)+ 活動預處理; (2)消息映射表(BEGIN~END); (3)應用程序類構造函數:CTestApp(); (4)聲明唯一的一個CTestApp對象; (5)CTestApp初始化函數:InitInstance(); |
3、 TestDlg.h: |
(1)#pragma once + 各種包含(afxwin.h + 后續的各種類的頭文件); (2)CTestDlg類定義(關聯的對話框ID + HICON m_hIcon +構造+ DoDataExchange +聲明消 息映射函數(OnInitDialog+OnSysCommand+OnPaint+OnQueryDragIcon)+ 聲明消息映射表); |
4、 TestDlg.cpp: |
(1)各種包含頭文件(stdafx.h + afxdialogex.h + Test.h + TestDlg.h) + 活動預處理; (2)CAboutDlg類的定義(關聯的對話框ID + 構造 + DoDataExchange + 聲明消息映射表)+ 實現(構造 + DoDataExchange + 消息映射表BEGIN~END); (3)CTestDlg類的實現(構造 + DoDataExchange + 消息映射表BEGIN~END); (表中有3個消息ON_WM_SYSCOMMAND + ON_WM_PAINT + ON_WM_QUERYDRAGICON) (4)CTestDlg消息處理程序:(消息處理程序對應消息映射表中的消息) OnInitDialog + OnSysCommand + OnPaint + OnQueryDragIcon。 |