MFC创建窗口流程

一个MFC程序框架

1、应用程序类 CWinApp

2、框架类 CFrameWnd

 

流程:

1、有且仅有一个全局的应用程序类对象 MyApp myApp;

2、在程序入口函数实现 InitInstance()

      1)、给框架类对象动态分配空间(自动调用它的构造函数)

             框架类MyFrame对象构造函数里创建窗口Create()

    2)、框架类对象显示窗口ShowWindow()

   3)、框架类对象更新窗口UpdateWindow()

   4)、保存框架类对象指针给m_pMainWnd

 

 

代码

myApp.h

#pragma once

#include <afxwin.h>

// 1)应用程序类 CWinApp,派生类(子类)

class MyApp : public CWinApp
{
public:
	//基类的虚函数
	//派生类重写
	//MFC 程序的入口地址
	virtual BOOL InitInstance();
};


// 2)框架类 CFrameWnd,派生类(资料)
class MyFrame : public CFrameWnd
{
public:
	MyFrame();
};

myApp.cpp

#include "myApp.h"

//有且仅有一个全局的应用程序类对象
MyApp myApp;

#pragma region MyApp

//程序的入口地址
BOOL MyApp::InitInstance()
{
	/*
	1、 创建框架类对象
	2、 显示窗口
	3、 更新窗口
	4、 保存框架类对象指针
	*/
	
	//1、 创建框架类对象
	MyFrame *frame = new MyFrame(); //构造函数
	
	//2、 显示窗口
	frame->ShowWindow(SW_NORMAL);

	//3、 更新窗口
	frame->UpdateWindow();

	//4、 保存框架类对象指针
	m_pMainWnd = frame;

	return TRUE;
}

#pragma endregion 

#pragma region MyFrame
MyFrame::MyFrame()
{
	// Cwnd的成员函数 CWnd::Create
	// CFrameWnd 继承于 CWnd
	Create(NULL, TEXT("我的MFC程序"));
}

#pragma endregion

 

注意:

fatal error C1189: #error :  Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值