先说明下目前的情况,现在玩过网页--- 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() };
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的什么保护眼睛的,看起来是绿色的。原生态的应该都是白色的。
好了,先到这里。
文章源地址:http://www.waitingfy.com/?p=157
例子下载:
HelloMFC.rar