Windows 10shell
基於對話框函數
新建【MFC_基於對話框_消息處理】的項目,這個文件的中的類繼承自 CWinApp。主要是由InitInstance()函數實現的。3d
// MFC_基於對話框_消息處理.h: PROJECT_NAME 應用程序的主頭文件 // #pragma once #ifndef __AFXWIN_H__ #error "在包含此文件以前包含「stdafx.h」以生成 PCH 文件" #endif #include "resource.h" // 主符號 // CMFC基於對話框消息處理App: // 有關此類的實現,請參閱 MFC_基於對話框_消息處理.cpp // class CMFC基於對話框消息處理App : public CWinApp { public: CMFC基於對話框消息處理App(); // 重寫 public: virtual BOOL InitInstance(); // 實現 DECLARE_MESSAGE_MAP() }; extern CMFC基於對話框消息處理App theApp;
InitInstance()裏聲明一個對話框類,【CMFC基於對話框消息處理Dlg】是另外一個文件裏的類,也就是主要功能代碼都是在這個類裏面寫的。code
// CMFC基於對話框消息處理App 初始化 BOOL CMFC基於對話框消息處理App::InitInstance() { CWinApp::InitInstance(); ...代碼省略... // 生成界面 CMFC基於對話框消息處理Dlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置處理什麼時候用 // 「肯定」來關閉對話框的代碼 } else if (nResponse == IDCANCEL) { // TODO: 在此放置處理什麼時候用 // 「取消」來關閉對話框的代碼 } else if (nResponse == -1) { TRACE(traceAppMsg, 0, "警告: 對話框建立失敗,應用程序將意外終止。\n"); TRACE(traceAppMsg, 0, "警告: 若是您在對話框上使用 MFC 控件,則沒法 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS。\n"); } // 刪除上面建立的 shell 管理器。 if (pShellManager != nullptr) { delete pShellManager; }