- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 基于对话框的应用程序
从本章我们将学习如何使用Visual C++进行真正意义上的Windows应用程序设计。对于编程者来说,最简单的实用程序应该是本章所要讲述的基于对话框的应用程序。当然,我们已在前面的章节中介绍了基于包括用户区的一般窗口的最简单的Windows程序,相比本章将要讲述的程序来说,它们还要更简单一些。但是要记住,在前面讲述的这些应用程序中,我们没有实现任何实际的功能。事实上,在这些应用程序中,实现一些哪怕是很简单的功能也需要很多的代码量。举一个例子,如果我们需要在用户区绘制图形或文本的话,就需要为Windows消息WM_PAINT编写消息处理函数。一个实用的Windows应用程序的WM_PAINT的消息处理过程常常会很庞大和很复杂。而对于在这章将要讲述的基于对话框的应用程序来说,整个应用程序都是由一个或多个对话框(dialog box)组成,对话框只是作为其它一些行为标准化了的窗口(我们叫它们控件(control))的容器,其行为也是标准化了的。这样,Windows就可以为这些行为标准化了的窗口实现很多默认的操作,而不需要我们进行更多的干预。比如对于一个文本框,我们只需要预先设定文本框的文字及其它一些属性,Windows就可以知道在不同的情况下这个文本框应该进行什么样的操作,因为它的行为,如编辑和选定文本等,都已经是标准化了的。虽然各种各样的控件各有各的特点,但是,对于一类控件来说,它们的行为在某种意义是一致的。(从这个意义上来说,这是面向对象程序设计的很大程度上的优点所在。)
使用MFC编写的对话框应用程序和使用SDK编写的对话框应用程序在结构上有着很大的不同。对于使用Visual C++的程序员来说,我们有充分的理由使用MFC来编写这些应用程序,因此,我们在这里将不讲述如何使用SDK编写的基于对话框的应用程序。
本章涉及的内容包括:
使用AppWizard生成基于对话框的框架应用程序 由CWinApp派生的应用程序类 MFC的消息映射机制及其实现 对话框及由CDialog派生的对话框类 第一节 使用AppWizard生成应用程序框架
在编写MFC应用程序时,我们通常使用AppWizard来生成应用程序框架,然后再在此框架的基础上来添加特定于应用程序的功能的实现。在计算机术语中,Wizard通常被译作向导(AppWizard即应用程序向导),它是这样的一种程序:你只需要回答一系列的与你所需完成的操作有关的问题,Wizard就会自动的完成其余的步骤,而这些步骤如果通过手工来完成的话,将可能会耗费相当长的时间和精力(但同时我们也要向你指出,AppWizard所能够帮助你完成的,也只是一个应用程序的框架。它所建立的,在绝大部分是我们在Windows 下程序设计中所需要完成的例行化的工作)。在Visual C++中,一种被称作AppWizard的向导,通过向你询问一些关于所需编写的应用程序各项特性的问题,即可按照程序员的要求生成相应的框架文件,这些框架文件本身就构成了一个完整的Windows应用程序,它实现了绝大多数同类型的Windows所共有的一些特性和功能。
??注意:我们还想说明的一点是:AppWizard能够帮助我们建立起一个应用程序的框架,但绝大多数的应用程序的代码还需要我们亲自编写。我们还从来没有看到仅仅通过AppWizard的代码就生成了一个成功的程序。明白这一点是很重要的:AppWizard所做的,只不过是我们在程序设计过程中所需要的最没有创意的那一部分事情。
真正应该引起我们更多的重视的,是Visual C++的可视化的界面生成。要知道,在可视化编程出现以前,为了一个简单的框架,程序员不得不重复干一些相当烦琐的工作:仅仅是为了安排好一个对话框中的控件的位置,他们就不得不先在稿纸上试着画布局图,写入程序,运行,再修改,再运行。。。。你可以想见,这是一件多么烦琐乏味的工作!
最后我们想提醒你,如果你不需要一个标准的Windows 程序界面或者不需要AppWizard所提供的文档/视结构,使用AppWizard并不一定是一个明智的选择。
使用AppWizard是一件简单和愉快的事情,并且,明白AppWizard所能完成的和所不能完成的内容会在编程时少走很多的弯路,因此,我们将在下面的过程中详细的讲述如何使用AppWizard创建基于对话框的应用程序:
1. 选择文件菜单下的New命令(出于排版方面的考虑,将参考图形进行了一定程度的处理),如图4.1所示。
图4. 1 新建工程
2. 从New对话框中选择Project选项卡。在Project name处输入工程名,一般来说,工程的命名在一定程度上是任意的,这里我们假定工程名为DialogDemo,在Location处输入保存工程的文件夹。然后在
文档评论(0)