初识Win32窗口应用程序-MFC(二)


MFC(Microsoft Foundation Classes) 微软基础类库


使用MFC创建窗口方式

1.#include <afxwin.h>

导入MFC窗口头文件 afxwin.h

2.在自定义的头文件mMfc.h中添加程序初始化入口和窗口创建入口

mMfc.h
class MyCWinApp :public CWinApp //继承应用程序类CWinApp
{
public:
	virtual BOOL InitInstance(); //程序入口 重载InitInstance 并实现InitInstance,创建窗口框架类对象
};

class MyCFrameWnd :public CFrameWnd //自定义MyCFrameWnd并继承窗口框架类CFrameWnd
{
public:
	MyCFrameWnd();//构造函数
  DECLARE_MESSAGE_MAP();//消息映射宏
	afx_msg void OnMouseMove(UINT, CPoint);//鼠标映射入口
	afx_msg void OnPaint();//画图映射入口
	// ...
};

3.在自定义mMfc.cpp中实现程序入口InitInstance()和窗口框架的构造函数MyCFrameWnd()

mMfc.cpp

#include "mMfc.h"
MyCWinApp app; //全局程序类对象 唯一

BOOL MyCWinApp::InitInstance() { //实现InitInstance
	MyCFrameWnd* mfw = new MyCFrameWnd;//创建自定义窗口框架类对象
	mfw->ShowWindow(SW_SHOWNORMAL); //显示窗口
	mfw->UpdateWindow();//更新窗口
	m_pMainWnd = mfw;//保存指向应用程序的主窗口的指针 
	return 1;
}

BEGIN_MESSAGE_MAP(MyCFrameWnd, CFrameWnd) //消息映射宏开始
	ON_WM_MOUSEMOVE()//映射鼠标移动事件
	ON_WM_PAINT()    //映射画图事件
END_MESSAGE_MAP();   //消息映射宏结束

void MyCFrameWnd::OnMouseMove(UINT, CPoint cp)//鼠标映射事件实现
{
	TCHAR buf[50];
	wsprintf(buf, TEXT("移动鼠标 坐标 x = %d,y = %d"), cp.x, cp.y);
	MessageBox(buf);
}
void MyCFrameWnd::OnPaint()//画图映射事件实现
{
	CPaintDC dc(this);
	dc.TextOutW(0,0,TEXT("hello Window"));

}
MyCFrameWnd::MyCFrameWnd()
{
	Create(NULL, TEXT("mfcWindow"));//创建窗口
}


4.代码结构


5.运行效果



6.运行时在项目属性 设定共享 DLL 中使用 MFC否则无法运行


Thanks

^_^o~ 努力!

原文链接:,转发请注明来源!