通过上述方法,我们进行代码的编写,创建一个空项目,我们要编写MFC应有程序,因此设置项目的属性,
项目->属性->链接器->系统->子系统为:窗口 (/SUBSYSTEM:WINDOWS),项目->属性->常规->项目默认值->MFC的使用为:在静态库中使用 MFC。
创建一个app.h头文件,代码如下:
#pragma once
#include<afxwin.h>//继承CWinApp,重写InitInstance()函数
class CTestWinApp :public CWinApp
{public:BOOL CTestWinApp::InitInstance();
};//继承CFrameWnd
class CTestFrameWnd : public CFrameWnd
{
public:CTestFrameWnd();afx_msg void OnPaint();DECLARE_MESSAGE_MAP();
};
创建菜单资源等,resource.h中的资源如下:
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ 生成的包含文件。
// 供 AppMFC.rc 使用
//
#define IDI_ICON 101
#define IDR_MENU 102
#define ID_OPEN 40004
#define ID_SAVE 40005
#define ID_ABOUT 40006// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 103
#define _APS_NEXT_COMMAND_VALUE 40007
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
在app.cpp中实现代码,如下:
#include "app.h"
#include<afxwin.h>
#include"resource.h"CTestWinApp theApp;//全局对象BOOL CTestWinApp::InitInstance()
{m_pMainWnd = new CTestFrameWnd();m_pMainWnd->ShowWindow(m_nCmdShow);m_pMainWnd->UpdateWindow();return TRUE;
}CTestFrameWnd::CTestFrameWnd()
{Create(NULL, "MFC 测试程序",WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME,rectDefault,NULL, MAKEINTRESOURCE(IDR_MENU));
}
void CTestFrameWnd::OnPaint()
{}
BEGIN_MESSAGE_MAP(CTestFrameWnd, CFrameWnd)ON_WM_PAINT()
END_MESSAGE_MAP()
运行结果: