软件设计模式一ppt课件.ppt

软件设计模式一ppt课件.ppt

ID:58729391

大小:403.50 KB

页数:65页

时间:2020-10-04

软件设计模式一ppt课件.ppt_第1页
软件设计模式一ppt课件.ppt_第2页
软件设计模式一ppt课件.ppt_第3页
软件设计模式一ppt课件.ppt_第4页
软件设计模式一ppt课件.ppt_第5页
资源描述:

《软件设计模式一ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、软件设计模式(一)潘爱民icst.pku.edu.cn/CompCourseWhyPatterns?内容从一个例子看模式关于模式的研究情况介绍一些重要的模式(部分)第三次作业一个设计例子VC/Samples/MFC/OLE/DrawCliDrawCli的基础MFC提供的基础Doc/View结构Doc提供了强大的数据管理功能View提供了强大的显示功能splitwnd功能CWinApp/CMainFrame提供了一套命令处理流程对OLE的封装ActiveContainerOLEClipboardPropertyPage数据结构管理功能C

2、Object/CObList我们的设计焦点用C++对象来表示每一个图元定义图元的公共接口如何处理用户的操作鼠标的动作图元对象的创建和管理图元基类classCDrawObj:publicCObject{//AttributesCDrawDoc*m_pDocument;//ownervirtualintGetHandleCount();virtualCPointGetHandle(intnHandle);virtualHCURSORGetHandleCursor(intnHandle);virtualvoidSetLineColor(CO

3、LORREFcolor);virtualvoidSetFillColor(COLORREFcolor);//OperationsvirtualvoidDraw(CDC*pDC);virtualvoidDrawTracker(CDC*pDC,TrackerStatestate);virtualvoidMoveTo(constCRect&positon,CDrawView*pView=NULL);virtualintHitTest(CPointpoint,CDrawView*pView,BOOLbSelected);virtualBOOL

4、Intersects(constCRect&rect);virtualvoidMoveHandleTo(intnHandle,CPointpoint,CDrawView*pView=NULL);virtualvoidOnOpen(CDrawView*pView);virtualvoidOnEditProperties();virtualCDrawObj*Clone(CDrawDoc*pDoc=NULL);virtualvoidRemove();virtualvoidSerialize(CArchive&ar);//……};图元层次结构

5、CDrawObjCDrawRectCDrawPolyCDrawOleObj……CDrawObjCDrawRectCDrawPolyCDrawOleObj……图元的创建永久支持:CDocument::Serialize->CObList::Serialize ->CObject::SerializeCDrawObj::CloneDrawTool:创建图元对象交互操作键盘和菜单命令MFC内部机制鼠标操作在CDrawView的鼠标处理函数中处理工具箱:工具链,有一个当前活动工具转交给当前活动工具来处理工具箱和CDrawToolclassCD

6、rawTool{//Constructorspublic:CDrawTool(DrawShapenDrawShape);//OverridablesvirtualvoidOnLButtonDown(CDrawView*pView,UINTnFlags,constCPoint&point);virtualvoidOnLButtonDblClk(CDrawView*pView,UINTnFlags,constCPoint&point);virtualvoidOnLButtonUp(CDrawView*pView,UINTnFlags,co

7、nstCPoint&point);virtualvoidOnMouseMove(CDrawView*pView,UINTnFlags,constCPoint&point);virtualvoidOnEditProperties(CDrawView*pView);virtualvoidOnCancel();//AttributesDrawShapem_drawShape;staticCDrawTool*FindTool(DrawShapedrawShape);staticCPtrListc_tools;staticDrawShapec_

8、drawShape;//……};DrawTool层次结构CDrawToolCSelectToolCRectToolCPolyTool……CDrawToolCSelectToolCRectToolCPolyTool……例子

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

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

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