- 9
- 0
- 约2.37万字
- 约 8页
- 2016-11-27 发布于河南
- 举报
一个最简单的MFC程序
尽管刚接触MFC不久,但其开发模式已初有感受,抛开复杂的应用不谈,想想我们通常怎样来写一个简单的MFC程序。也许浮现在你脑海里的是程序向导,类向导,资源编辑器,以及程序代码,此时你大概会灵光一现,说MFC程序=向导+资源+代码。看起来确实是这样,但有没有可能更简化一些呢,比如把向导去掉。想想是可以的,向导不过是简化MFC开发的一种手段,虽然没有类向导日子会很难过,但也使你有机会看看纯手工打造的MFC是怎么样的,这对于了解MFC的执行流程非常有帮助。
我试图从一个最简单的MFC程序开始,慢慢丰富它,使它最终成为一个有点用处的程序。这个过程中我会尽力抵挡住使用类向导的诱惑,只使用资源以及程序代码。当然可能需要好几篇文章的篇幅,因为这个程序是我计划好的,用来学习MFC的每一个技术点的实验品。现在,它的另一个目的是证明:MFC程序=资源+代码。
一个最简单的MFC程序
你一定有这样的经验,用MFC的程序向导生成的MFC代码满是宏,注释,条件定义,这些对于程序的健壮性很有必要,不过对于初学者却是可怕的怪兽。
其实MFC程序可以写得非常简单,只用一个头文件和一个源文件就可以了,用程序向导新建一个程序,选择Win32 Application类型的程序,我的工程名是:MiniDraw;在下一步选择“一个空工程”并完成掉它。
生成的工程仅仅是一个工作区,没有任何源文件,手工给它添加一个头文件和一个源文件,分别是:DrawApp.h; DrawApp.cpp。这是它们的代码:
DrawApp.h:
#ifndef LINZHENQUN_DRAWAPP_H_
#define LINZHENQUN_DRAWAPP_H_
class CDrawApp: public CWinApp
{
public:
CDrawApp();
BOOL InitInstance();
};
#endif //LINZHENQUN_DRAWAPP_H_
DrawApp.cpp:
#include afxwin.h
#include DrawApp.h
CDrawApp DrawApp;
CDrawApp::CDrawApp()
{
}
BOOL CDrawApp::InitInstance()
{
return FALSE;
}
不管你信不信,这就是一个最简单的MFC程序,尽管它什么事情也做不了。在编译的时候会出现错误,这是因为没有添加MFC共享DLL,打开工程设置,在常规页将MFC下拉框选为“使用MFC作为共享DLL”。然后再编译看看,运行后它马上就返回了,我们得在InitInstance里面作点什么。
BOOL CDrawApp::InitInstance()
{
MessageBox(0, Hello world, , MB_OK);
return FALSE;
}
MFC版的Hello World完成了,可能你还觉得过于简陋,如果是这样的话,给程序加一个对话框怎么样呢。
本文来自: 中国自学编程网() 详细出处参考: HYPERLINK /html30395.html /html30395.html
全部的代码如下:#include afxwin.h class sample:public CFrameWnd{public:sample(){Create(NULL,MFC Window);MessageBox(My MFC Window,CFrame constructor,MB_OK);}};class App:public CWinApp{public:BOOL InitInstance();BOOL ExitInstance();};BOOL App::InitInstance(){MessageBox(0,My MFC Window,InitInstance,MB_OK|MB_ICONASTERISK);sample *obj;obj=new sample;m_pMainWnd=obj;obj-ShowWindow(SW_SHOWMAXIMIZED);return TRUE;}BOOL App::ExitInstance(){MessageBox(0,My Window,ExitInstance,MB_OK|MB_ICONHAND);return TRUE;}App a;你只需将以上代码拷贝下来,在
原创力文档

文档评论(0)