MFC的第一个程序Hello World, Hello MFC
原创
©著作权归作者所有:来自51CTO博客作者fox64194167的原创作品,请联系作者获取转载授权,否则将追究法律责任
先说明下目前的情况,现在玩过网页--- 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。
选择工程里的Win32 Application,工程名称改成HelloMFC
选择空工程即可。
左边的Tab 切换到FIleView,下面。你就会看到两个重要的文件夹。Header Files(存放C++头文件)和Resource Files(存放cpp文件)。
点击Header Fils 文件夹,点击菜单的文件-》新建。选择C/C++ Header File, 文件名输入 hello
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);
}
最后
右击项目,选择设置,常规下的Microsoft 基础类:选择“使用MFC作为静态的DLL”或者“使用MFC作为共享的DLL”两个都可以。
点击确定后,F5运行起来后
注意下我这里用了360的什么保护眼睛的,看起来是绿色的。原生态的应该都是白色的。
好了,先到这里。
例子下载:
HelloMFC.rar