先说明下目前的情况,现在玩过网页--- ASP.NET 和PHP。Android稍微玩了下,工作需要。一直对Windows 下的软件很好奇,不知道什么弄的。当然用C#写过WinForm类的软件,感觉拖控件有点乏味。听说MFC很难,用C++写的。

到Amazon.cn上买了两本书《深入浅出MFC》,《MFC Windows 程序设计》。前面一本比较难,后面一本比较贵。

看了1个多月。那个消息映射,什么宏,比较难啊,还有夸张的匈牙利命名。

废话说到这里,来看下MFC的第一个程序。顺便说下我用的是古老的Visual C++ 6.0,还有个必须提的是,用惯了Eclipse 和 VS2010 等大型IDE,用Visual C++ 6.0,那个没有智能提示代码,打一些Windows API比较麻烦,这里推荐安装Visual Assist X。

MFC的第一个程序Hello World, Hello MFC_ide

选择工程里的Win32 Application,工程名称改成HelloMFC

MFC的第一个程序Hello World, Hello MFC_c++_02

选择空工程即可。

MFC的第一个程序Hello World, Hello MFC_#include_03

左边的Tab 切换到FIleView,下面。你就会看到两个重要的文件夹。Header Files(存放C++头文件)和Resource Files(存放cpp文件)。

点击Header Fils 文件夹,点击菜单的文件-》新建。选择C/C++ Header File, 文件名输入 hello

MFC的第一个程序Hello World, Hello MFC_ide_04

hello.c

class CMyApp:public CWinApp
{
public:
virtual BOOL InitInstance();
};
class CMainWindow:public CFrameWnd
{
public:
CMainWindow();
protected:
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP()
};


同样点击Resource Files 文件夹添加 C++ Source File.

hello.cpp

#include <afxwin.h>
#include "Hello.h"
CMyApp myApp;

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

BEGIN_MESSAGE_MAP(CMainWindow,CFrameWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()

CMainWindow::CMainWindow()
{
Create(NULL,_T("The Hello Application"),WS_OVERLAPPEDWINDOW|WS_VSCROLL|WS_HSCROLL);
}

void CMainWindow::OnPaint()
{
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
dc.DrawText(_T("Hello,MFC"),-1,&rect,
DT_SINGLELINE|DT_CENTER|DT_VCENTER);

}


最后


MFC的第一个程序Hello World, Hello MFC_ide_05

右击项目,选择设置,常规下的Microsoft 基础类:选择“使用MFC作为静态的DLL”或者“使用MFC作为共享的DLL”两个都可以。

点击确定后,F5运行起来后

MFC的第一个程序Hello World, Hello MFC_#include_06

注意下我这里用了360的什么保护眼睛的,看起来是绿色的。原生态的应该都是白色的。

好了,先到这里。

例子下载:

​HelloMFC.rar​