下载此文档

软件设计模式一.ppt


文档分类:IT计算机 | 页数:约65页 举报非法文档有奖
1/65
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/65 下载此文档
文档列表 文档介绍
软件设计模式(一)
1
Why Patterns?
2
内容
从一个例子看模式
关于模式的研究情况
介绍一些重要的模式(部分)
第三次作业
3
一个设计例子
VC/Samples/MFC/OLE/DrawCli
4
DrawCli的基础
MFC提供的基础
Doc/View结构
Doc提供了强大的数据管理功能
View提供了强大的显示功能
splitwnd功能
CWinApp/CMainFrame
提供了一套命令处理流程
对OLE的封装
Active Container
OLE Clipboard
Property Page
数据结构管理功能
CObject/CObList
5
我们的设计焦点
用C++对象来表示每一个图元
定义图元的公共接口
如何处理用户的操作
鼠标的动作
图元对象的创建和管理
6
图元基类
class CDrawObj : public CObject
{
// Attributes
CDrawDoc* m_pDocument; // owner
virtual int GetHandleCount();
virtual CPoint GetHandle(int nHandle);
virtual HCURSOR GetHandleCursor(int nHandle);
virtual void SetLineColor(COLORREF color);
virtual void SetFillColor(COLORREF color);
// Operations
virtual void Draw(CDC* pDC);
virtual void DrawTracker(CDC* pDC, TrackerState state);
virtual void MoveTo(const CRect& positon, CDrawView* pView = NULL);
virtual int HitTest(CPoint point, CDrawView* pView, BOOL bSelected);
virtual BOOL Intersects(const CRect& rect);
virtual void MoveHandleTo(int nHandle, CPoint point, CDrawView* pView = NULL);
virtual void OnOpen(CDrawView* pView);
virtual void OnEditProperties();
virtual CDrawObj* Clone(CDrawDoc* pDoc = NULL);
virtual void Remove();
virtual void Serialize(CArchive& ar);
// ……
};
7
图元层次结构
CDrawObj
CDrawRect
CDrawPoly
CDrawOleObj
……
CDrawObj
CDrawRect
CDrawPoly
CDrawOleObj
……
8
图元的创建
永久支持:
CDocument::Serialize->CObList::Serialize ->CObject::Serialize
CDrawObj::Clone
DrawTool:创建图元对象
9
交互操作
键盘和菜单命令
MFC内部机制
鼠标操作
在CDrawView的鼠标处理函数中处理
工具箱:工具链,有一个当前活动工具
转交给当前活动工具来处理
10

软件设计模式一 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数65
  • 收藏数0 收藏
  • 顶次数0
  • 上传人sxlw2017
  • 文件大小405 KB
  • 时间2021-07-22
最近更新