初稿面向对象程序设计(vc++)

初稿面向对象程序设计(vc++)

ID:27792070

大小:427.89 KB

页数:19页

时间:2018-12-06

初稿面向对象程序设计(vc++)_第1页
初稿面向对象程序设计(vc++)_第2页
初稿面向对象程序设计(vc++)_第3页
初稿面向对象程序设计(vc++)_第4页
初稿面向对象程序设计(vc++)_第5页
资源描述:

《初稿面向对象程序设计(vc++)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、绘图报告0具体要求利用MFC实现在窗口中画图,画图的方式是以鼠标做为画笔,按下左键拖曳拉出线条。每次按下鼠标左键后一直到放开为止的连续坐标点构成线条(stroke)。整张图(整份文件)由线条构成,线条可由点、笔宽等等资料构成。1ZSDraw的Document-数据结构设计MFCCollectionClasses的选用MFCCollectionClasses。它们分为三种类型,用来管理一大群对象:Array:数组,有次序性(需依序处理),可动态增减大小,索引值为整数。List:双向串行,有次序性(需依序处理),无索引。串行有头

2、尾,可从头尾或从串行的任何位置安插元素,速度极快。Map:又称为Dictionary,其内对象成对存在,一为键值对象(keyobject),一为实值对象(valueobject)。1.1.1Template-BasedClassesMFC的collectionclasses里头有一些是template-based,这些类別区分力:简单型CArray、CList、CMapo它们都衍生自CObject,所以它们都具备了文件读写、执行时期型别鉴识、动态生成等性质;类型指针型CTypedPtrArray、CTypedPtrList、

3、CTypedPtrMap。这些类别要求在参数中指定基础类别,而基础类别必须是MFC之中的non-templatepointercollections,例如CObList或CPtrArrayo1.1.2Template-BasedClasses的使川?7法简单型template-basedclasses使用吋要指定参数:CArray

4、++基础型别,如int、char、long、float等等;C++结构或类別。ARG_TYPE则W来指定函数的参数类型。“类型指针”型的template-basedclasses使川时亦需指定参数:CTypedPtrArray

5、BASE_CLASS则川来指定基础类别,它可以是任何用來收集指针的non-templatecollectionclasses,例如CObList或CObArray或CPtrList或CPtrArray等等。1.1CZSDrawDoc的修改CollectionClasses屮各类別的特性以及template/nontemplate之后,很显然:不定量的线条数可以川串行(linkedlist)来表示,那么MFC的CObList恰可川来表现这样的串行。CObList规定其每个元素必须是一个“CObject衍生类别”的对象实体,可以

6、设计一个名为CStroke的类別,衍生自CObject,代表一条线条。力丫type-safe,选择template版本,所以这以这样设计出Document:classCZSDrawDoc:publicCDocumentpublic:CTypedPtrList

7、所说的数组元素类型条件,所以CStmke的成员变量可以这么设计:classCStroke:publicCObjectprotected:UINTm_nPenWidth;//笔宽public:CAiTaym_pointArray;//记录CPoint对象♦••»參•)CZSDrawDoc内嵌一个CObList对象,CObList串行中的每个元素都是一个CStroke对象指针,而CStroke之中内嵌一个CArray对象。下面是具体程序的Document设汁。ZSDRAWDOC.HclassCStr

8、oke:publicCObject{public:CStroke(UINTnPenWidth);protected:CStroke();DECLARE_SERIAL(CStroke)//Attributesprotected:UINTm_nPenWidth;//笔宽public:CArra

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。