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

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

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






                                              份菜单是否一开始就有功效,必须视你选 



                                              用哪一种View 而定,例如CEditView 



                                              就内建有剪贴簿功能。 



416 


…………………………………………………………Page 479……………………………………………………………

                                第7章    簡單而完整:MFC 骨幹程式 



                              标准MDI 程序应该具备的 



                               【Window】菜单 



                              【Help】菜单和About 对话框 



                              亦已备妥。 



此外,标准的工具栏和状态列也已备妥,并与菜单内容建立起映射关系。所谓工具栏, 



是将某几个常用的菜单项目以按钮型式呈现出来,有一点热键的味道。这个工具栏可以 



随处停驻(dockable )。所谓状态列,是主窗口最下方的文字显示区;只要菜单拉下,状 



态列就会显示鼠标座落的菜单项目的说明文字。状态列右侧有三个小窗口(可扩充个 



数),用来显示一些特殊按键的状态。 



                                                        417 


…………………………………………………………Page 480……………………………………………………………

               第篇    湷觥 FC  程式設計 



               打印与预视功能也已是半成品。【File 】菜单拉下来可以看到【Print。。。 】和【Print Preview 】 



               两项目: 



               骨干程序的Document 和View  目前都还是白纸一张,需要我们加工,所以一开始看不 



               出打印与预视的真正功能。但如果我们在AppWizard  中选用的View 类别是CEditView 



                (如同第4章292 页),使用者就可以打印其编辑成果,并可以在打印之前预视。也就 



               是说,一进程序代码都不必写,我们就获得了一个可以同时编辑多份文件的文字编辑软件。 



418 


…………………………………………………………Page 481……………………………………………………………

                                                 第7章    簡單而完整:MFC 骨幹程式 



Document/View 支撑你的应用程序 



      我已经多次强调,Document/View 是MFC 进化为Application Framework  的灵魂。这个特 



      征表现于程序设计技术上远多于表现在使用者接口上,因此使用者可能感觉不到什么是 



      Document/View 。程序员呢?程序员将因陌生而有一段阵痛期,然后开始享受它带来的便 



      利。 



      我们在OLE  中看到各对象(注)的集合称为一份Document ;在MDI  中看到子窗口所 



      掌握的资料称为一个Document ;现在在MFC 又看到Document 。〃Document〃 如今处处 



      可见,再过不多久八成也要和〃Object〃 一样地泛滥了。 



      OLE 对象指的是PaintBrush 完成的一张bitmap 、SoundRecorder 完成的一段Wave 声 



      音、Excel 完成的一份电子表格、Word 完成的一份文字等等等。为了恐怕与C++  的「对象」 



      混淆,有些书籍将OLE object 称为OLE item 。 



      在MFC 之中,你可以把Document 简单想作是「资料」。是的,只是资料,那么MFC 



      的CDocument 简单地说就是负责处理资料的类别。 



      问题是,一个预先写好的类别怎么可能管理未知的资料呢?MFC 设计之际那些伟大的天 



      才们并不知道我们的数据结构,不是吗?! 他怎么知道我的程序要处理的资料是简单 



      如: 



         char  name'20'; 

         char  address'30'; 

         int   age; 

         bool  sex; 



      或是复杂如: 



         struct dbllistnode 

                { 

                  struct dbllistnode *next; *prev; 

                  struct info_t 

                         { 

                          int left; 

                          int top; 



                                                                                  419 


…………………………………………………………Page 482……………………………………………………………

                           第篇    湷觥 FC  程式設計 



                                               int width; 

                                               int height; 

                                               void (*cursor)(); 

                                              } *item; 

                                     }; 



                         的确,预先处理未知的资料根本是不可能的。CDocument 只是把空壳做好,等君入瓮。 



                         它可以内嵌其它对象(用来处理基层数据类型如串行、数组等等),所以程序员可以在 



                         Document  中拼拼凑凑出实际想要表达的文件完整格式。下一章进入Scribble 程序的实际 



                         设计时,你就能够感受这一点。 



                         CDocument 的另一价值在于它搭配了另一个重要的类别:CView。 



                         不论什么型式,数据总是有体有面。实际的资料数值就是体,显示在屏幕上(甚而打印 



                         机上)的画面就是面(图7…3a )。「数值的处理」应该使用字节、整数、浮点数、串 



                         列、数组等数据结构,而「数值的表现」应该使用绘图工具如坐标系统、笔刷颜色、点 



                         线圆弧、字形。。。。CView 就是为了资料的表现而设计的。 



                            CMyDoc::Serialize(。。。) 

                                                         CMyView::OnDraw(。。。) 

                            { 

                                                         { 

                             // 把资料读出文件                   // 取得Document, 

                             // 放入Document 中              // 调用GDI 函数, 

                            }                             // 将资料表现出来。 



                                                         } 

                                          磁盘中的文件 



                                The C++ piler gen 

                                ings; all of which a 

                                are caused by the ol 

                                。。。 



                                Hello; I am J。J。Hou;  

                                a goodman。 

                                。。。 



                                The difference; omit 

                                lpCmdLine parameter 

                                。。。 



                             图7…3a Document 是资料的体, View 是资料的面。 



         420 



} 


…………………………………………………………Page 483……………………………………………………………

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