MFC的创建过程


模块功能

添加当前模块大概功能的描述,希望不要把所有接口文档写在一个文件中,至少按模块分类。

  • 在资源文件–添加----添加资源----双击 Dialog类
  • 包含必须用到的头文件 afxwin,否则无法创建子类
  • 定义 CWinApp 类的子类,重写其中的 InitInstance 函数
  • 在全局范围内定义唯一的一个 CWinApp 子类对象
  • 在 InitInstance 中编写逻辑添加功能,最多的是弹出对话框

MFC的创建过程

  1. 包含必须的头文件
#include <afxwin.h>
#include "resource.h"
  1. 创建一个继承自 CWinApp 类的子类
class CMyWinApp : public CWinApp
{

}
  1. 在类CMyWinApp中,重写一个叫做 InitInstance 的虚函数,这个函数可以当作入口函数
virtual BOOL InitInstance() override
	{
		/*
			// 传入对话框 ID 初始化一个对话框
			CDialog* pDialog = new CDialog(IDD_DIALOG1);
			// 通过 doModule 函数创建模态对话框
			pDialog->DoModal();
		*/

		// 在堆空间中创建一个对话框对象
		CDialog *pDialog = new CDialog;
		// 必须设置了程序的主窗口,才能正常执行
		this->m_pMainWnd = pDialog;
		// 通过 Create 创建一个非模态对话框
		pDialog->Create(IDD_DIALOG1);
		// 通过 ShowWindow 显示窗口
		pDialog->ShowWindow(SW_SHOWNORMAL);

		// m_pMainWnd 指向的窗口会被作为程序的主窗口,通过函数
		//	afxGetMainWnd 可以获取到这个主窗口对象

		return TRUE;
	}
  1. 在全局范围内定义一个唯一的 CWinApp 子类对象CMyWinApp theApp
// 5. 在全局范围内定义一个唯一的 CWinApp 子类对象
CMyWinApp theApp;

完整代码实现

#include <afxwin.h>
#include "resource.h"


class CMyWinApp :public CWinApp
{
	virtual BOOL InitInstance() override
	{
		CDialog* pDialog = new CDialog(IDD_DIALOG1);
		pDialog->DoModal();

		return TRUE;
	}


};

CMyWinApp theApp;

结果展示

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值