yspyblcspySetStartPoi
tspSetE
dPoi
tepSetBou
d补充说明
CMapList类
模块名称
CMapList存储图形
功能描述接口与属性数据结构
CMapListCMapList
f与算法
CMapListCMapList销毁列表中所有指针所指向的对象fori
ti0iGetSizeideleteGetAti
补充说明
CRECT类
模块名称
CRECT矩形类
功能描述接口与属性数据结构与算法
classCRECTpublicCGraphicpublicCRECTvirtualCRECTvoiddrawCDCpDCi
tGetTypeBOOLIsSelectedCPoi
tpoi
tvoidZoomOuti
tblc缩小图元voidZooml
i
tblc放大图元
补充说明
CLINE类
模块名称
CLINE
f功能描述接口与属性数据结构与算法
直线类
classCLINEpublicCGraphicpublicCLINEvirtualCLINEvoiddrawCDCpDCi
tGetTypeBOOLIsSelectedCPoi
tpoi
tvoidZoomOuti
tblc缩小图元voidZooml
i
tblc放大图元
补充说明
CCIRCLE类
模块名称
CCIRCLE圆形类
功能描述接口与属性数据结构与算法
classCCIRCLEpublicCGraphicpublicCCIRCLEvirtualCCIRCLEvoiddrawCDCpDCi
tGetTypeBOOLIsSelectedCPoi
tpoi
tvoidZoomOuti
tblc缩小图元voidZooml
i
tblc放大图元
补充说明
在Doc类中加入了三个列表成员和一个矩形成员:
fCMapListm_MapList当前绘制的图形的列表CObArraym_SelectedList选中图形列表CMapListm_CopyList复制的图形列表CRectrect
Vie类中加入的成员:
CPoi
tptCPoi
tpt2i
t
判断图形的种类i
tflag判断是否画线i
teflag判断是否用橡皮i
tbflag判断是否用画刷i
tsize画笔的大小COLORREFm_Color颜色CPe
oldpe
画笔boolifmove判断是否移动i
twidth图形矩形区域与鼠标位置的x距离i
tlarge图形矩形区域与鼠标位置的y距离boolm_select判断是否选择图形boolifi
判断光标是否在图形内
加入了一个函数用来控制图形的选择:
voidEditLButto
UpUINT
FlagsCPoi
tpoi
t选中后鼠标抬起
下面是各个功能的代码实现:
f绘图在View类中的O
Draw函数中实现:
voidCMy1209ViewO
DrawCDCpDCTODOadddrawcodefor
ativedatahereCMy1209DocpDocGetDocume
tASSERT_VALIDpDocTODOadddrawcodefor
ativedatahere循环绘制图元列表,保证绘制过的图形不会消失fori
ti0ipDocm_MapListGetSizeiCGraphicpMapCGraphicpDocm_MapListGetAtipMapdrawpDC绘制扇形、弧线、圆角矩形ifbflag1pDCSelectObjectoldpe
if
1pDCPiepDocrectleftpDocrecttoppDocrectrightpDocrectbottomptxptypt2xpt2yif
2
f
pDCArcpDocrectleftpDocrecttoppDocrectrightpDocrectbottomptxptypt2xpt2yif
3
pDCRou
dRectpDocrectlefr