基于对话框_消息处理

编译环境

  • 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;
	}

原文地址:https://www.cnblogs.com/17bdw/p/10339884.html