MFC学习笔记HellowWorld

VS2008->新建->vsual c++->常规->空项目

添加个头文件,代码如下

class CMyApp:public CWinApp
{
public:
	virtual BOOL InitInstance();
};
class CMyFrame:public CFrameWnd
{
public:
CMyFrame();
protected:
	afx_msg void OnLButtonDown(UINT NfLAGS,CPoint point);
	afx_msg void OnPaint();
	DECLARE_MESSAGE_MAP()
};



添加个源文件,代码如下

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

CMyApp theApp;

BOOL CMyApp::InitInstance()
{
	m_pMainWnd = new CMyFrame();
	m_pMainWnd->ShowWindow(m_nCmdShow);
	m_pMainWnd->UpdateWindow();
	return true;
}

BEGIN_MESSAGE_MAP(CMyFrame,CFrameWnd)
	ON_WM_LBUTTONDOWN()
	ON_WM_PAINT()
END_MESSAGE_MAP()

CMyFrame::CMyFrame()
{
	Create(NULL,"MYAPP Application");
}
void CMyFrame::OnLButtonDown(UINT nFlags,CPoint point)
{
	TRACE("Entering MyApp - %lx,%d,%d\n",(long)nFlags,point.x,point.y);
}
void CMyFrame::OnPaint()
{
	CPaintDC dc(this);
	dc.TextOutA(0,0,"Hello,world");
}

项目-》属性-》配置属性-》常规-》项目默认值-》MFC的使用-》在共享 DLL 中使用 MFC
同样在配置属性中-》连接器-》高级-》入口点-》WinMainCRTStartup

然后项目可正常运行

下面挑一部分内容解释一下这个程序

程序运行先构造一个CWinApp派生出来的类的对象(MFC框架决定的)
就是这个对象:CMyApp theApp;

MFC内部有一个WinMain函数
这个函数是程序的入口点,函数执行过程中发现了CMyApp 的对象,即执行它的InitInstance函数
此函数负责主窗口的构造和显示工作

我们可以看到在InitInstance程序中创建了一个继承自CFrameWnd的CMyFrame类
这就是代表窗口的类

OnLButtonDown是鼠标左键按下的事件
此处事件做的工作是在调试窗口输出鼠标的坐标
OnPaint是窗口的重绘事件

就解释到这里

原文地址:https://www.cnblogs.com/liulun/p/1567320.html