友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
喜书网 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

C语言实例教程(PDF格式)-第18章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






}  



这里,我们需要删掉creature。cpp文件中的  



#include 〃〃  



一行。  


…………………………………………………………Page 112……………………………………………………………

在上面的过程中,还 自动生成的类Creature的构造函数和析 

构函数的框架,并且,其析构函数还被声明为虚函数。  



下面的步骤添加类Creature的成员函数KindOf:  



1。     在ClassView中右击类Creature,选择Add             Member  

Function,弹出如图所示的对话框。  



                                            



                    图2。9 添加成员函数  



2。  在Function Type处输入char  *。然后在对话框下方选择 

Virtual复选框,这导致Static复选框不可用,因为同一个成 

员函数不可能既是虚函数,又是静态函数,这时,在 

Function Declaration处自动添加上了virtual关键字。确认 

在Access处选择了Public,然后,在Function  Declaration 

处输入函数名KindOf,单击OK完成。  



双击ClassView中的KindOf,Microsoft Developer Studio将 

打开文件creature。cpp,将将插入点定位到函数KindOf的定 

义处。在此添加下面的代码:  



char* Creature::KindOf()  



{  



return 〃Creature〃;  



}  



下面以类似的方式生成类Animal,使其基类为Creature,继 

承方式为public。并将其头文件改为animal。h,实现文件改 

为animal。cpp。同样,在animal。cpp中删除  



#include 〃〃  



一行。  


…………………………………………………………Page 113……………………………………………………………

对于MFC应用程序,还可以使用ClassView来重载基类中的虚 

函数,这将在本书后面的章节中讲述。而对于非MFC应用程 

序,我们仍可以使用上面的添加成员函数的方法来重载基类 

中的虚函数,只不过这时必须手动的给出虚函数的返回类型 

和参数列表。  



使用上面的方法来生成为Animal的重载虚函数KindOf,其代 

码已在上一节中给出。  



然后再新添加一个C++ Source File——main。cpp,并在其中 

定义程序的主函数main()。  



由于我们 目前还没有接确到MFC编程,因此,现在还不能讲解 

ClassView的某此用法。在本书后面的章节中,我们将会在用 

到这些功能的时候讲解它们。  



2。5。2 使用WizardBar  



WizardBar是Microsoft Developer Studio中的一个工具条, 

如图2。10所示。它提供了对ClassView和ClassWizard   (关于 

ClassWizard的使用将在后面的章节中讲述)中的命令的快速 

访问。  



                                      



                 图2。10 WizardBar  



WizardBar工具条中的显示的内容是与当前上下文相关联的, 

也就是说,随着当前上下文的改变,WizardBar的显示也会改 

变。图2。10是在ClassView中双击类Animal的构造函数之后的 

WizardBar。  



可以使用WizardBar来完成下面的这些操作:  



  n 跳转到函数的定义 (实现)处  



  n 跳转到函数的声明处  



  n 跳转到类的定义处  



  n 添加窗口消息处理函数  



  n 添加虚函数  


…………………………………………………………Page 114……………………………………………………………

  n 添加成员函数  



  n 添加新类  



  n 跳转到文件中的下一个函数  



  n 跳转到文件中的前一个函数  



  n 打开包含文件  



  n 获得关于WizardBar的帮助  



WizardBar中最左边的下拉列表框被称作类列表 (Class  

List),它列举了当前工程中所有可用的类;中间的下拉列表 

框被称作过滤器和成员列表 (Filter和Member      List),对于 

Visual     C++工程,可以通过过滤器和成员列表指定在 

WizardBar中列出的内容,即是列出所有的类成员,还是与特 

定的资源ID相关联的成员;最右边的部分被称作WizardBar行 

为控件,包括两个部分,一个按钮和位于按钮右边的下箭 

头。单击下箭头可以出现如图2。11所示的下拉菜单,菜单中 

各项的意义非常之直观,这里不再赘述。  



                            



              图2。 11 WizardBar行为菜单  



注意在图2。11中被以粗体显示的菜单项,这些项被称为 

WizardBar默认行为。在以下几种情况下,WizardBar的默认 

行为被执行:  



  n 单击了下箭头左边的图标按钮  



  n 在WizardBar的下拉列表中按下了回车键  



  n 在对话框编辑器中双击了某个控件  



当不同的WizardBar的下拉列表框获得输入焦点时, 

WizardBar采取不同的默认行为,如表所示。  



    表2。 7 不同的下拉列表框具有输入焦点时WizardBar的不同默认行为  


…………………………………………………………Page 115……………………………………………………………

  获得输入焦点的下拉    WizardBar采用的默认行为  

  列表框  



  类列表          跳转到选定的类中以字母排序的第一个成员。如 

               果类中没有实现任何函数和方法,则弹出一个对 

               话框为类创建新的成员函数和方法。对于C++全 

               局类 (global  classes),该对话框提示创建新的 

               类。  



  过滤器和成员列表     如果位于一个资源ID上,默认行为为跳转到以字 

               母排序的第一个消息的处理函数处。如果没有创 

               建任何消息处理函数,则弹出一个对话框以创建 

               新的消息处理函数。  



  成员列表         默认行为为跳转到选定的成员的定义处。  



为了更快的访问WizardBar提供的功能,可以为WizardBar类 

列表、过滤器列表、成员列表和行为按钮设置快捷键,当按 

下所设置的快捷键时,WizardBar中的相应元素获得输入焦 

点;也可以为在下拉列表中给出的其它WizardBar行为设置相 

应的快捷键,当这些快捷键被按下时,相应的行为将被执 

行。为WizardBar设置快捷键的方法如下:  



1。 选择Tools菜单下的Customize命令,打开如图2。12所示的 

对话框。  



2。     在Category下拉列表框中选择WizardBar。然后,在 

mands列表框中选择需要设置快捷键的命令。这时,在 

Description处就会出现该命令的相应的简单的英文解释,因 

此,我们这里无需再对全部的命令给出详细的说明,其中对 

应于WizardBar类列表、过滤器列表、成员列表和行为按钮的 

命令分别为WBActionButtonActive、WBClassboActive、 

WBFilterboActive、WBMemberboActive。  



3。 然后单击Press new shortcut,并按下新的快捷键,如果 

新的快捷键可用,则它将出现在Press  new  shortcut文本框 

中,单击Assign按钮,即可将新的快捷键与指定的命令相关 

联。  


…………………………………………………………Page 116……………………………………………………………

                                        



            图2。 12 为WizardBar设置快捷键  



n 注意:  



n 不可以使用那些已被系统保留的快捷键,如ESC、F1、 

 Ctrl+Alt+Del等。  



n 如果所设置的快捷键已被其它命令使用,则在Press new  

 shortcut下方的Currently assigned to处将给出与该快 

 捷键相关联的当前命令,如果这时按下Assign按钮,则 

 该快捷键将与新设定的命令相关联,与原命令的关联将 

  自动失效。单击Reset All可以恢复Microsoft  

 Developer Studio原有的默认设置。  


…………………………………………………………Page 117……………………………………………………………

        第三章 Win32应用程序设计  



在过去,进行Windows程序设计是一件痛苦异常的事情,原因是那时 

候还没有现在的这些设计精美的应用程序开发工具。在今天,一个对 

Windows程序运行的内部机制几乎一无所知的初入门者,只需要通过 

不到一天的学习,也可以使用如Visual  Basic之类的程序开发工具创 

建出功能完整的Windows应用程序。这在几年前还是一件不可思议的 

事,因为即使是一个熟练掌握C语言的程序员,在当时差不多需要半 

年的学习才可以较全面的掌握Windows的编程技术,而且,与在DOS环 

境下编程相比,急剧膨胀的程度代码大大增加了程序调试的困难,从 

而使得编写一个出色的Windows应用程序要比编写一个出色的DOS需要 

考虑多得多的东西。  



在Microsoft的另一种易学易用的编程工具Visual   Basic中,从某种 

角度说,Windows程序不是编出来的,而是由程序员画出来的。但是 

要知道,一个出色的Windows的应用程序并不仅在于在屏幕上绘出程 

序的各个窗口和在窗口中恰当的安排每一个控件。对于具有一定基础 

的程序员而言,更重要的内容在于知道Windows和Windows应用程序的 

运行机制,以及它们之间以何种方式来进行通信,然而,明确 自己在 

编写Windows时所需做的工作是哪一些。换句话说,我们需要透过 

Windows漂亮的图形用户界面,认清在底层所发生的每一件事情。然 

而,这并非是一件容易的事。虽然,使用MFC和AppWizard,我们仍可 

能只需要回答几个简单的问题和添加少数的几条代码就能够生成功能 

完整的Windows应用程序。但是记住,没有一个成功的商业软件是使 

用这样的方式生成的。同时,也只有深入的理解了MFC应用程序框架 

的运行机制,才可能用好和用活这一工具,才能达到熟悉掌握Visual  

C++的境界。  



尽管说MFC应用程序框架提供的是面向对象的Windows编程接口,这和 

传统的使用C语言和SDK来进行的Windows应用程序设计有着很大的不 

同,但是从底层来说,其中的大部分功能仍是通过调用最基本的 

Win32  API来实现的。其中最重要的一点是,Windows应用程序的运行 

机制仍然没有改变,它们仍然是通过消息来和操作系统,进而和用户 

进行交互的事件驱动的应用程序。MFC对这一切进行了比较彻底的封 

装,它们隐藏在你所看不见的背面。即使你对这一切一无所知,你仍 

可以在Visual   C++中使用MFC来进行程序设计。但是,经验表明,理 

解这一切的最好的方式是回过头去,看一看这些内容在S
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!