第章多文档界面程序PPT资料.ppt
《第章多文档界面程序PPT资料.ppt》由会员分享,可在线阅读,更多相关《第章多文档界面程序PPT资料.ppt(23页珍藏版)》请在冰豆网上搜索。
/线段起点线段起点CPointm_pointTo;
/线段终点线段终点COLORREFm_colorLine;
/线段颜色线段颜色intm_nWidth;
/线段宽度线段宽度描述线段的类描述线段的类(成员函数)(成员函数)CLine()CLine(POINTfrom,POINTto,COLORREFcolor,intwidth);
CLine&
operator=(CLine&
line);
voidSerialize(CArchive&
ar);
voidDrawLine(CDC*pDC);
virtualCLine()DECLARE_SERIAL(CLine);
文档类文档类n数据定义中,添加如下数据成员数据定义中,添加如下数据成员public:
CLinem_lineListMAX_LINES;
intm_nCount;
n初始化初始化voidCMyDoc:
DeleteContents()m_nCount=0;
文档类文档类n序列化序列化voidCMyDoc:
Serialize(CArchive&
ar)if(ar.IsStoring()arm_nCount;
for(inti=0;
im_nCount;
i+)m_lineListi.Serialize(ar);
视图类视图类n数据定义(不需序列化的数据定义在此)数据定义(不需序列化的数据定义在此)public:
COLORREFm_colorCurr;
/当前颜色当前颜色intm_nCurrWidth;
/当前线宽当前线宽BOOLm_bCaptured;
/是否按下鼠标左键是否按下鼠标左键CPointm_pointFrom;
/当前线始端当前线始端CPointm_pointTo;
/当前线终端当前线终端n初始化初始化视图类视图类n显示图形显示图形voidCMyView:
OnDraw(CDC*pDC)CMyDoc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
i+)pDoc-m_lineListi.DrawLine(pDC);
视图类视图类l数据修改(鼠标消息)数据修改(鼠标消息)lDownlMovelUpUpdateAllViews(this);
/MDI特殊用法l菜单菜单l菜单界面更新菜单界面更新16.2滚动视图滚动视图n滚动视图类滚动视图类CScrollViewn重要方法重要方法lSetScrollSizes()l坐标转换调试技术调试技术n使用使用AppWizard建立建立MDI程序框架程序框架程序设计举例程序设计举例n例例16-3改写例改写例16-1的绘图程序,使之使用滚动视图,同的绘图程序,使之使用滚动视图,同时选用合适的映射模式,使程序具有时选用合适的映射模式,使程序具有“所见即所所见即所得得”的打印风格的打印风格主要修改
(一)主要修改
(一)voidCMy1603View:
OnInitialUpdate()CScrollView:
OnInitialUpdate();
SetScrollSizes(MM_TWIPS,CSize(11520,15120);
voidCMy1603View:
OnPrepareDC(CDC*pDC,CPrintInfo*pInfo)pDC-SetMapMode(MM_TWIPS);
CScrollView:
OnPrepareDC(pDC,pInfo);
主要修改
(二)主要修改
(二)n坐标转换坐标转换voidCMy1603View:
OnLButtonDown(UINTnFlags,CPointpoint)CScrollView:
OnLButtonDown(nFlags,point);
CClientDCdc(this);
OnPrepareDC(&
dc);
dc.DPtoLP(&
point);
/物理坐标转换为逻辑坐标物理坐标转换为逻辑坐标m_pointFrom=m_pointTo=point;
SetCapture();
m_bCaptured=TRUE;
上机练习题上机练习题n完完善善例例16-3的的绘绘图图程程序序,包包括括改改善善界界面面(如如设设计计专专用用图图标标,完完善善菜菜单单等等)、加加上上绘绘制制其其他他图图形形的的功功能等。
能等。
n将吹泡泡程序的结构改为将吹泡泡程序的结构改为MDI,并使用滚动视图。
,并使用滚动视图。
结结束束语语n学好程序设计语言的唯一途径是学好程序设计语言的唯一途径是上机练习。
上机练习。
n你的编程能力与你在计算机上投入的时间成你的编程能力与你在计算机上投入的时间成正比。
正比。