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

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

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






                 算是半自助吧。全自助的作法就复杂许多。Walter Oney 有一篇〃Pay No Attention to the 



                 Man Behind the Curtain! Write Your Own C++ AppWizards〃 文章,发表于Microsoft 



                 Systems Journal 的1997 三月号,里面详细描述了全自助的作法。请注意,他是以Visual 



                 C++ 4。2 为演练对象。不过,除了画面不同,技术上完全适用于Visual C++ 5。0 。 



                 Dino Esposito 有一篇文章〃a new assistant〃,发表于Windows Tech Journal  的1997 三 



                 月号,也值得参考。1997 年五月份的Dr。 Dobb's Journal 也有一篇名为〃Extending 



                 Visual C++ : Custom AppWizards make it possible〃  的文章,作者是John Roberts 。 



790 


…………………………………………………………Page 853……………………………………………………………

                     16                   ponents & ActiveX Controls 

                   第 章 站眾的肩膀 使用 



 第16 章 



           站上众人的肩膀   使用 

 ponents & ActiveX Controls 



从Visual Basic 开始,可以说一个以ponents (软件组件)为中心的程序设计时代, 



逐渐拉开了序幕。随后Delphi 和C++ Builder 陆续登场。Visual Basic 使用VBX  (Visual 



Basic eXtension )组件,Delphi 和C++ Builder 使用VCL (Visual ponent Library ) 



组件,Visual C++ 则使用OCX  (OLE Control eXtension )组件。如今OCX 又演化到所 



谓ActiveX 组件(其实和OCX 大同小异)。 



Microsoft  的Visual Basic (使用Basic 语言),Borland  的Delphi (使用Pascal 语言), 

 以及  Borland  的  C++ Builder (使用  C++  语言),都称得上是一种快速开发工具 (RAD, 

                                                                ) 

Rapid Application Development )。它们所使用的组件都是PME  (Properties…Method…Event 

架构。这使得它们的整合环境(IDE)能够做出非常可视化的开发工具,以拖放、填单的 

方式完成绝大部份的程序设计工作。它们的应用程序开发程序大约是这个样子: 



 1。 选择一些适当的软件组件(VBX 或VCL )。 

 2。 打开一个form,把那些软件组件拖放到form  中适当的位置。 

 3。 在Properties 清单中填写适当的属性。例如精确位置、宽度高度、或是让A组件的 

  某个属性连接到B组件。。。等等。 

 4。 撰写程序代码(method ),做为某种event 发生时的处理例程。 



                                                                     791 


…………………………………………………………Page 854……………………………………………………………

                第篇    深入  MFC  程式設計 



                 依我的看法,Visual C++ 还不能够算是RAD 。虽然,MFC 程序所能够使用的OCX 也 



                 是PME  (Properties…Method…Event )架构,但Visual C++ 整合环境没有能够提供适当工 



                 具让我们以那么可视化的方式(像VB 或Delphi 或C++ Builder 那样拖放、填单)就 



                 几乎完成一个程序。 



        什么是ponent Gallery 



               ponent Gallery 是自从Visual C++ 4。0 之后,整合环境中新增的一个东西。你可以把 



               它想象成一个数据库,储存着ActiveX controls 和可重复使用的C++ 类别(也就是本章 



               所谓的ponents )。VC++ 5。0  的ponent Gallery 的使用接口和VC++ 4。x 有某种 



               程度的不同,不过操控原则基本上是一致的。 



               当你安装了Visual C++ 5。0  ,ponent Gallery 已经内含了一些微软所提供的 



               ponents 和ActiveX controls (注:以下我将把这两样东西统称为「组件」)。选按整 



               合环境的【Project / Add To Project / ponents and Controls。。。 】菜单项目,你就可以看到 



               ponent Gallery : 



792 


…………………………………………………………Page 855……………………………………………………………

                     16                    ponents & ActiveX Controls 

                   第 章 站眾的肩膀 使用 



其中有Developer Studio ponents 和Registered ActiveX Controls 两个资料夹,打开任 



何一个,就会出现目前系统所拥有的「货色」: 



如果你以为这些组件储存在两个地方(一个是它本来的位置,另一份拷贝放在ponent 



Gallery 之中),那你就错了。ponent Gallery 只是存放那些组件的位置资料而已。你 



可以说,只是存放一个「联结」而已。 



 为什么组件在此分为ponents 和ActiveX controls 两种?有什么不同。简单地说, 



 ponents 是一些已写好的C++ 类别。基本上C++ 类别本来就具有重复使用性, 



 ponent Gallery 只是把它们多做一些必要的包装,连同其它资源放在一起成为一个包 



 裹。当你需要某个ponent ,ponent Gallery 给你的是该ponents  的源代码。 



 ActiveX controls 不一样。当你选用某个ActiveX controls ,ponent Gallery 当然也会为 



 你填入一些码,但它们不是组件的本体。那些码只是使用组件时所必须的码,组件本身 



 在。OCX 文件中(通常注册后的OCX 文件都放在WindowsSystem 磁盘子目录)。 



                                                                      793 


…………………………………………………………Page 856……………………………………………………………

               第篇    深入  MFC  程式設計 



               ActiveX controls 是很完整的一个有着PME  (Proterties…Method…Event )架构的控制组件, 



               但一般欲被重复使用的C++ 类别却不会有那么完整的设计或包装。要把一个C++ 类别 



               做成完好的包装,放到ponent Gallery 中,它必须变为一个单一文件,内含类别资 



               讯以及任何必须的资源。这在过去的Visual C++ 4。x  中是很容易的事情,因为每次你使 



               用ClassWizard 新增一个类别,就有一个核示盒询问你要不要加到ponent Gallery : 



                Visual C++ 4。x 的ClassWizard 新增类别对话窗 



               但这一选项已在Visual C++ 5。0  中拿掉(你可以在第10 章增加对话窗类别时看到新的画 



               面)。看来似乎要增加ponents 不再是那么方便了。这倒也不是坏事,我想许多人 



               在设计程序时忽略了上图那个选项,于是每一个项目中的每一个类别,都被包装到 



               ponent Gallery 去,而其中许多根本是没有价值的: 



794 


…………………………………………………………Page 857……………………………………………………………

                           16                   ponents & ActiveX Controls 

                        第 章 站眾的肩膀 使用 



     Visual C++ 4。x 的ponent Gallery。常常因为程序员的疏忽,而产生了 



     一大堆没有价值的ponents。 



使用 ponents 



     当你选择ponent Gallery 中的Developer Studio ponents 资料夹,出现许多的 



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



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