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

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

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






 继承                         Inheritance 



 动态绑定                 Dynamic Binding,亦即后期绑定(late binding) 



 虚拟函数                 virtual function 



 多态                         Polymorphism,亦有他书译为「同名异式」 



 成员函数                 member function 



 成员变量                 data member ,亦有他书译为「数据成员」 



 基础类别                 Base Class ,亦即父类别 



 衍生类别                 Derived Class,亦即子类别 



另有一些名词很难说用什么中文字眼才好。例如〃double click〃,有时候我写「双击」, 



有时候我写「以鼠标快按两下」;而〃click〃,我可能用「选按」「选择」「以鼠标按一 



下」等字眼,完全视上下文而定。虽没有统一,但您在文字中一定会了解我的意思。我 



期盼写出一本读起来很顺又绝对不会让你误解意思的中文计算机书。还有些名词在某些场 



合使用中文而在某些场合使用原文,例如Class                       (类别)和Object      (对象)和Menu        (菜 



单),为的也是使上下文阅读起来舒服一些。这些文字的使用都肇基于我个人对文字的 



认知以及习惯,如果与您的风格不符,深感抱歉。我已尽力在一个处处需要英文名词的 



领域中写一本尽可能阅读顺畅的中文技术书籍。 



                                                                                              33 


…………………………………………………………Page 56……………………………………………………………

              深入湷觥 FC 



            本书符号习惯 



              斜体字表示函数、常数、变量、语言保留字、宏、识别码等等,例如: 



                CreateWindow               这是Win32  函数 



                strtok                     这是C Runtime 函数库的函数 



                WM_CREATE                   这是Windows 消息 



                ID_FILE_OPEN                这是资源识别码(ID ) 



                CDocument::Serialize       这是MFC 类别的成员函数 



                m_pNewViewClass             这是MFC 类别的成员变量 



                BEGIN_MESSAGE_MAP          这是MFC 宏 



               public                       这是C++ 语言保留字 



                当我解释程序操作步骤时,如果使用中括号,例如【File/New 】,表示选按File 菜单中 



                的New 命令项。或者用来表示一个对话窗,例如我写:【New Project 】对话窗。 



             磁盘内容与安装 



                本书光盘片内含书中所有的范例程序,包括源代码与EXE 档。中介文件(如。OBJ 



                和。RES 等)并未放入。所有程序都可以在Visual C++ 5。0 整合环境中制作出来。安装 



                方式很简单(根本没有什么安装方式):利用DOS 外部指令,XCOPY,把整个光盘片 



                拷贝到你的硬盘上即是了。 



            范例程序说明 



                ■  Generic (第1章):这是一个Win32 程序,主要用意在让大家了解Win32 程 



                  式的基本架构。 



                ■  Jbackup (第1章):这是一个Win32 console 程序,主要用意在让大家了解 



34 


…………………………………………………………Page 57……………………………………………………………

                                                 第0章    你定要知道(導讀) 



   Visual C++ 整合环境中也可以做很单纯的DOS…like 程序,而且又能够使用 



   Win32 API 。 



■   MFCcon  (第1章):这是一个很简单的MFC console 程序,主要用意在让大 



   家了解Visual C++ 整合环境中也可以做很单纯的DOS…like 程序,而且又能 



   够使用MFC classes 。 



■   MltiThrd (第1章):这是一个Win32 多线程程序,示范如何以CreateThread 做 



    出多个执行线程,并设定其虚悬状态、优先权、重新激活状态、睡眠状态。 



■    Frame1~8 (第3章):这些都是console 程序(所谓DOS…like 程序),仿真并 



   简化Application Framework  的六大核心技术。只有! ¨ Persistence! ¨  技术未仿真 



    出来,因为那牵扯太广。 



   □  Frame1 :仿真MFC 阶层架构以及application object 



   □  Frame2 :仿真MFC  的WinMain 四大动作流程 



   □  Frame3 :仿真CRuntimeClass 以及DYNAMIC 宏,组织起所谓的类别型录网 



   □  Frame4 :仿真IsKindOf (执行时期对象类别的鉴识能力,也就是所谓的RTTI ) 



   □  Frame5 :仿真Dynamic Creation (MFC 2。5  的作法)(在本新版中已拿掉) 



   □  Frame6 :仿真Dynamic Creation (MFC 4。x  的作法) 



   □  Frame7 :仿真Message Map 



   □  Frame8 :仿真mand Routing 



■   Hello 范例程序(第6章):首先以最小量(两个)MFC 类别,完成一个最最 



   简单的MFC 程序。没有Document/View …事实上这正是MFC 1。0 版的应用 



   程序风貌。本例除了提供你对MFC 程序的第一印象,也对类别的静态成员函 



   式应用于callback 函数做了一个示范。每有窗口异动(产生WM_PAINT), 



   就有一个〃Hello MFC〃 字符串从天而降。此外,也示范了空闲时间(idle time ) 



   的处理。 



                                                                             35 


…………………………………………………………Page 58……………………………………………………………

               深入湷觥 FC 



             ■   Scribble Step0~Step5 : ! ¨  Scribble! ¨  范例之于MFC 程序设计, 几乎相当于 



               ! § Generic! ¨  范例之于SDK 程序设计。微软的「官方手册」Visual C++ Class 



               Library User's Guide 全书即以本例为主轴,介绍这个可以让你在窗口中以鼠标 



               左键绘图的程序。Scribble 程序共有Step1~Step7,七个阶段的所有源代码都 



               可以在Visual C++ 5。0  的DEVSTUDIOVCMFCSAMPLESSCRIBBLE  目录中 



               找到。本书只采用Step1~Step5,并增列Step0。Step6 是OnLine Help 的制 



               作,Step7 是OLE Server  的制作,这两个主题本书从缺。 



             ■   Scribble Step0-由MFC AppWizard 做出来的空壳程序,也就是所谓的MFC 骨 



               干程序。完整源代码列于第4章「东圈西点完成程序骨干」一节。完整解说出 



               现在第7章。 



             ■   Scribble Step1-具备Document/View 架构(第8章):本例主旨在加上资料处 



               理与显示的能力。这一版的窗口没有卷动能力。同一文件的两个显示窗口也没 



               有能够做到实时更新的效果。当你在窗口甲改变文件内容,对映至同一文件的 



               窗口乙并不会实时修正内容,必须等WM_PAINT 产生(例如拉大窗口)。 



               这个版本已具备打印与预视能力,但并非「所见即所得」(What You See Is What You 



               Get ),打印结果明显缩小,这是因为映射模式采用MM_TEX T 。15寸监视器的 640 



               个图素换到300dpi 上才不过两英寸多一点。 



               我们可以在这个版本中学习以AppWizard 制作骨干,并大量运用ClassWizard 为我 



               们增添消息处理函数;也可以学习如何设计Document ,如何改写CView::OnDraw 和 



               CDocument::Serialize,这是两个极端重要之虚拟函数。 



             ■   Scribble Step2-修改使用者接口(第9章):这个版本变化了菜单,使程序多 



               了笔宽设定功能。由于菜单的变化,也带动了工具栏与状态列的变化。 



               从这个版本中我们可以学习如何使用资源编辑器,制作各式各样的程序资源。为了把 



               菜单命令处理函数放置在适当的类别之中,我们需要深入了解所谓的Message 



36 


…………………………………………………………Page 59……………………………………………………………

                                           第0章    你定要知道(導讀) 



   Mapping 和mand Routing。 



■   Scribble Step3-增加「笔划宽度对话框」(第10 章):这个版本做出「画笔宽 



   度对话框」,使用者可以在其中设定细笔宽度和粗笔宽度。预设的细笔为两个 



   图素(pixel )宽,粗笔为五个图素宽。 



   从这个版本中可以学习如何以对话框编辑器设计对话框模板,以ClassWizard 增设对 



   话盒处理函数,以及如何以MFC 提供的DDX/DDV 机制做出对话框控制组件 



    (control )的内容传递与内容查核。DDX   (Dialog Data eXchange )的目的在简化应用 



   程序取得控制组件内容的过程,DDV  (Dialog Data Validation )的目的则在加强应用 



   程序对控制组件内容之数值合理化检查。 



■    Scribble Step4-加强显示能力滚动条与分裂窗口(第11 章):Scribble 可以 



   对同一份Document 产生一个以上的Views ,但有一个缺点亟待克服,那就是 



   你在窗口A的绘图动作不能实时影响窗口B …即使它们是同一份资料的一体 



   两面! 



   Step4 解决上述问题。主要关键在于我们必须想办法通知所有同血源(同一份 



   Document )的兄弟(各个Views ),让它们一起行动。但因此却必须多考虑一个情况: 



   当使用者的一个鼠标动作可能引发许多许多程序绘图动作时,绘图效率就变得非常重 



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