编译环境
-
Windows 10
-
基于对话框
MFC建立基础对话框
消息处理
新建【MFC_基于对话框_消息处理】的项目,这个文件的中的类继承自 CWinApp。主要是由InitInstance()函数实现的。
// 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】是另一个文件里的类,也就是主要功能代码都是在这个类里面写的。
// 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, "警告: 对话框创建失败,应用程序将意外终止。
");
TRACE(traceAppMsg, 0, "警告: 如果您在对话框上使用 MFC 控件,则无法 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS。
");
}
// 删除上面创建的 shell 管理器。
if (pShellManager != nullptr)
{
delete pShellManager;
}