网站大量收购闲置独家精品文档,联系QQ:2885784924

MFC程序实6例.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
尽管刚接触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完成了,可能你还觉得过于简陋,如果是这样的话,给程序加一个对话框怎么样呢。 对话框的界面通过资源来加,在新建向导的文件页里选“资源脚本”,输入文件名为resource,确定后便生成了resource.rc,并在IDE里可以见到它: 在resource.rc处点击右键菜单,选插入,在插入资源对话框里选Dialog,点新建后,一个对话框模板就生成了。 享受一下快速开发的感觉吧,接下来要将这个对话框资源与一个对话框类关联起来,使用类向导的话会非常简单,不过为了体现纯手工的意义,我决定还是用新建文件的方式。 新建AboutDialog.cpp和AboutDialog.h,代码如下: AboutDialog.h #ifndef LINZHENQUN_ABOUTDIALOG_H_ #define LINZHENQUN_ABOUTDIALOG_H_ class CAboutDialog: public CDialog { public: CAboutDialog(CWnd* pParent = NULL); protected: virtual OnInitDialog(); DECLARE_MESSAGE_MAP(); }; #endif //LINZHENQUN_ABOUTDIALOG_H_ AboutDialog.cpp #include afxwin.h #include AboutDialog.h #include resource.h

文档评论(0)

zzabc003 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档