1 新建Windows窗体项目Win32项目
2 设置MFC的使用
3 设置连接器的子系统为窗口
4 test.h
#pragma once
#include <sdkddkver.h>
#include <afxwin.h>
#include <afxwinappex.h>
#include <afxframewndex.h>
class CTestApp :public CWinAppEx
{
public:
virtual BOOL InitInstance();
};
5 MainFrm.h
#pragma once
#include <sdkddkver.h>
#include <afxwin.h>
#include <afxframewndex.h>
class CMainFrame :public CFrameWndEx
{
public:
CMainFrame();
DECLARE_MESSAGE_MAP()
afx_msg void OnPaint();
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
};
6 MainFrm.cpp
#include "MainFrm.h"
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWndEx)
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()
CMainFrame::CMainFrame()
{
Create(NULL, _T("主窗口"));
}
void CMainFrame::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CFrameWndEx::OnPaint()
CRect rc;
GetClientRect(&rc);
dc.DrawText(_T("Hello world,这是一个MFC程序"), rc, DT_SINGLELINE | DT_VCENTER | DT_RIGHT);
}
void CMainFrame::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
AfxMessageBox(_T("你单击了鼠标左键"));
CFrameWndEx::OnLButtonDown(nFlags, point);
}
7 test.cpp
#include "test.h"
#include "MainFrm.h"
CTestApp theApp;
BOOL CTestApp::InitInstance()
{
// TODO: 在此添加专用代码和/或调用基类
SetRegistryKey(_T("Hello MFC APP"));
m_pMainWnd = new CMainFrame();
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
return CWinAppEx::InitInstance();
}