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

深入浅出MFC第2版(PDF格式)-第196章

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






     ponents 。面对形形色色的「货」,你的心里一定嘀咕着:怎么用嘛?幸好画面上有 



     一个【More Info 】按钮,可以提供你比较多的信息。以下我挑三个最简单的ponents 



     做示范。 



Splash screen 



     所谓Splash Screen,你可以说它是一个「炫耀画面」。玩过微软的Office 吗?每一个 



     Office 软件一出场,在它做初始化的那段时间里,都会出现一个画面,就是Splash 



     screen。 



     Splash Screen 的【More Info 】出现这样的画面: 



                                                                            795 


…………………………………………………………Page 858……………………………………………………………

                 第篇    深入  MFC  程式設計 



                选按上图下方的〃Splash Screen ponent Specifics〃,你会获得一张使用规格说明,大 



                意如下: 



                   欲插入splash Screen ponent ,你必须: 



                   1。 打开你希望安插Splash Screen ponent  的那个项目。 



                   2。 选择整合环境中的【Project/Add To Project/ponents and Controls 】菜单项目。 



                   3。 选择〃Developer's Studio ponents〃 资料夹。 



                   4。 选择资料夹中的Splash Screen ponent 并按下【Insert 】钮。 



                   5。 设定必要的Splash Screen 选项然后按下【OK 】钮。 



                   6。 重建(重新编译联结)项目。 



                   如果要把Splash Screen 加到一个以对话窗为主(dialog…based )的程序中,你必须在插 



796 


…………………………………………………………Page 859……………………………………………………………

                            16                      ponents & ActiveX Controls 

                          第 章 站眾的肩膀 使用 



       入这个ponent 之后做以下事情: 



        1。 找到你的InitInstance  函数。 



       2。 在你调用: 



       int nResponse = dlg。DoModal(); 



       之前,加上一行: 



        spl。ShowSplashScreen(FALSE); 



       增加这一行码,可以确保Splash Screen 在主对话窗被显示之前,会被清除掉。 



                        



     看来很简单的样子 



System Info for About Dlg 



      看过WordPad  的【About 】对话窗吗: 



    如果你也想让自己的对话窗有点系统信息的显示能力,可以采用ponent Gallery 提供 



    的这个System Info for About Dlg ponent 。它的规格说明文字如下: 



      SysInfo ponent 可以为你的程序的About 对话窗中加上一些系统信息(可用内存 



      数量以及磁盘剩余空间)。你的程序必须以MFC AppWizard 完成。请参考WordPad 说 



                                                                                  797 


…………………………………………………………Page 860……………………………………………………………

               第篇    深入  MFC  程式設計 



               明文件以获得更多信息。 



               这份规格书不够详细。稍后我会在修改程序代码时加上我自己的说明。 



          Tip of the Day 



              看过这种画面吗(微软的Office 软件就有): 



              这就是「每日小秘诀」。ponent Gallery 提供的Tips for the Day ponent 让你很 



              方便地为自己加上「每日小秘诀」。这个ponent  的使用规格是: 



                小秘诀文字文件(TIPS。TXT ): 



                拥有Tips for the Day ponent  的程序将搜寻磁盘中的工作子目录,企图寻找 



                TIPS。TXT 读取秘诀内容。如果你希望这个秘诀文字文件有不同的名称或是放在不同的位 



                置,你可以修改CTIP。CPP  中的CTIP 类别构造式。CTIP 是预设的类别名称。 



                 (侯俊杰注:最后这句话是错误的。我使用这个ponent ,接受所有的预设项目,获 



                得的类别名称却是CTIPDLG ,文件则为TIPDLG。CPP ) 



                ■  TIPS。TXT  的格式如下: 



                1。 文件必须是ASCII 文字,每一个秘诀以一行文字表示。 



798 


…………………………………………………………Page 861……………………………………………………………

                         16                  ponents & ActiveX Controls 

                       第 章 站眾的肩膀 使用 



      2。 如果某一行文字以分号(;)开头,表示这是一行说明文字,不生实效。说明文字必 



      须有自己单独的一行。 



      3。 空白行会被忽略。 



      4。 每一个小秘诀最多1000 个字符。 



      5。 每一行不能够以空白或定位符号(tab )开始。 



      ■  小秘诀显示次序: 



      预设情况下,小秘诀的出现次序和它们在文件中的排列次序相同。如果全部都出现过了, 



      就再循环一遍。如果文件被更改过了,显示次序就会从头开始。 



      ■  错误情况: 



      这个组件希望在MFC 程序中被使用。你的程序应该只有一个衍生自CWinApp 的类 



      别。如果有许多个CWinApp 衍生类别,此组件会选择其中第一个做为实作的对象。其 



      他的错误情况包括秘诀文字文件不存在,或格式不对等等。 



      ■  在程序的【Help 】菜单中加上Tip of The Day 项目: 



      这个组件会修改主框窗口的OnInitMenu 函数,并且在你的【Help 】菜单下加挂一个Tip 



      of The Day 项目。如果你的程序原本没有【Help 】菜单,此组件就自动为你产生一个。 



ponents  实际运用:Test 程序 



     现在,动手吧。首先利用MFC AppWizard 产生一个项目,就像第4章的Scribble step0 那 



     样。我把它命名为Test    (放在书附光盘的Test。17 子目录中)。然后,不要离 



     开这个项目,激活ponent Gallery ,进入Developer Studio ponents 资料夹,分别 



     选择Splash Screen 和System Info for About Dlg 和Tips of the Day 三个组件,分别按 



     下【Insert 】钮。Splash Screen 和Tips of the Day 组件会要求我们再指定一些消息: 



                                                                       799 


…………………………………………………………Page 862……………………………………………………………

                  第篇    深入  MFC  程式設計 



             新增文件 



                 这时候Test 项目中的源代码有了一些变动(被ponent Gallery 改变)。被改变 



                 的文件是: 



                     STDAFX。H 

                     RESOURCE H 

                     TEST。H 

                     TEST。CPP 

                     TEST。RC 

                     MAINFRM。H 

                     MAINFRM。CPP 

                     SPLASH。H 

                     SPLASH。CPP 

                     SPLSH16。BMP 

                     TIPDLG。CPP 

                     TIPDLG。H 



                 选按整合环境的【Build / Build Test。Exe 】,把这个程序建造出来。建造完毕试执行 



                 之,你会发现在主窗口出现之前,一开始先有一张画面显现: 



800 


…………………………………………………………Page 863……………………………………………………………

                     16                     ponents & ActiveX Controls 

                   第 章 站眾的肩膀 使用 



然后是每日小秘诀: 



然后才是主窗口。至于About 对话窗,画面如下(没啥变化): 



                                                                        801 


…………………………………………………………Page 864……………………………………………………………

                   第篇    深入  MFC  程式設計 



                   看来,我们只要修改一下Splash Screen 画面,并增加一个TIPS。TXT 文字文件,再变化 



                   一下About 对话窗,就成了。程序编修动作的确很简单,不过我还是要把这三个组件加 



                   诸于你的程序的每一条痕印都揭发出来。 



               相关变化 



                   让我们分析分析ponent Gallery 为我们做了些什么事情。 



                   STDAFX 。H  (阴影部份为新增内容) 



                   。。。 

                   #include          // MFC core and st 

                   #include          // MFC extensions 

                   #include         // MFC OLE automat 

                   #ifndef _AFX_NO_AFXCMN_SUPPORT 

                   #include                      // MFC 

                   #endif // _AFX_NO_AFXCMN_SUPPORT 

                   #include  

                   。。。 



                   RESOURCE。H 



                   下面是针对三个组件新增的一些常数定义。凡是稍后修改程序时会用到的常数,我都加 



                   上批注,提醒您特别注意。 



                   。。。 

                   #define IDB_SPLASH                   102  // Splash screen 所加,代表一张 16 色 bitmap 画面 

                   #define CG_IDS_PHYSICAL_MEM         103 

                   #define CG_IDS_DISK_SPACE            104 

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