□ 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 ),让它们一起行动。但因此却必须多考虑一个情况:
当使用者的一个鼠标动作可能引发许多许多程序绘图动作时,绘图效率就变得非常重
要。因此在考量如何加强显示能力时,我们就得设计所谓的「必要绘图区」,也就是
所谓的Invalidate Region (不再适用的区域)。事实上每当使用者开始绘图(增加新
的线条),程序可以设定「必要绘图区」为:该线条之最小外围四方形。为了记录这
项数据,Step1 所设计并延续至今的Document 数据结构必须改变。
Step1 的View 窗口有一个缺点:没有滚动条。新版本加上了垂直和水平滚动条,此外它
也示范一种所谓的分裂窗口(Splitter )。
■ Scribble Step5-打印与预视(第12 章):Step1 已有打印和预视能力,这当然
归功于CScribbleView::OnDraw。现在要加强的是更细致的打印能力,包括表
37
…………………………………………………………Page 60……………………………………………………………
深入湷觥 FC
头、表尾、页码、映射模式等等。坐标系统(也就是映射模式,Mapping Mode )
的选择,关系到是否能够「所见即所得」。为了这个目的,必须使用能够反应
真实世界之尺寸(如英寸、公分)的映像模式,本例使用 MM_LOENGLISH,
每个逻辑单位0。01 英寸。
我们也在此版中学习如何设定文件的大小。有了大小,才能够在打印时做分页动作。
■ Graph 范例程序(第13 章):这个程序示范如何在静态分裂窗口的不同窗口中,
以不同的方式(本例为长条图、点状图和文字形式)显示同一份资料。
■ Text 范例程序(第13 章):这个程序示范如何在同一份Document 的各个「同
源view 窗口」中,以不同的显示方法表现同一份资料,做到一体数面。
■ Graph2 范例程序(第13 章):这个程序示范如何为程序加上第二个Document
类型。其间关系到新的Document ,新的View ,新的UI 。
■ MltiThrd 范例程序(第14 章):这是第1章的同名程序的MFC 版。我只示
范MFC 多线程程序的架构,原Mltithrd 程序的绘图部份留给读者练习。
■ Top 范例程序(第15 章):示范如何量身定做一个属于自己的AppWizard 。
小说推荐
- Java编程思想第4版[中文版](PDF格式)
- -Page 1-Page 2《Thinking In Java》中文版作者:Bruce Eckel主页:http/BruceEckel.编译:Trans Bot主页:http/memberease~transbot致谢-献给那些直到现在仍在孜孜不倦创造下一代计算机语言的人们!指导您利用万维网的语言进
- 其他
- 最新章:第295章
- VB2008从入门到精通(PDF格式英文版)
- -Page 1(R)The eXperT’s Voice inBeginningVB 2008From Novice to ProfessionalChristian Gross-Page 2-Page 3-Beginning VB 2008From Novice to Professional■C
- 其他
- 最新章:第214章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 其他
- 最新章:第37章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 其他
- 最新章:第4章
- 深入浅出
- 《深入浅出》作者:白小骨晋江VIP20140610完结+1番外非V章节总点击数:67370 总书评数:209 当前被收藏数:764 文章积分:11,386,657文案:每个前男友都是女人掉过的坑,从何典阳这个坑里往外爬的梁温暖一脸血表示,何典阳他这个深坑实在太坑爹。何典阳:我是坑?梁温暖…别看我,我
- 激情
- 最新章:第74章
- 深入浅出[娱乐圈]
- 文案【忠犬影帝攻X傲娇明星受,1V1轻松甜文,前期互相试探,38章在一起后甜甜甜,两人都有细微的变化和成长~这也是我用心构思攻受感情发展的文,但数据有点太惨了,没入V可以全文免费看,还是想求点收藏呀,数据好看点吧,让我开心一下(笑哭.jpg)流量偶像白漾和影帝顾瑜祁关系很僵,传言两人出道时不合而互相
- 激情
- 最新章:第59章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 其他
- 最新章:第28章
- SQL语言艺术(PDF格式)
- -Page 1-SQLSSQQLL语言艺术内容介绍本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你数据库应用维护人员阅读。资深 SQL 专家 Stéphane Faroult倾力打
- 其他
- 最新章:第27章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 其他
- 最新章:第143章