网站大量收购独家精品文档,联系QQ:2885784924

vc++报告正文.docx

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
vc报告正文

第十章Windows编程例10.3 将所给的实际数据换算为设备坐标后画出折线图。代码:constintxMax=700;constintyMin=20;constintiPt=10; double dbXdata[iPt]={1,1.5,2,3,4,5,6,7,8,9}; doubledbYdata[iPt]={22.5,22.9,31.4,32.0,32.5,33,33.6,34.7,34.9,36};//找出最大和最小doubledbXMin=dbXdata[0];doubledbXMax=dbXdata[0];doubledbYMin=dbYdata[0];doubledbYMax=dbYdata[0];for(inti=1;iiPt;i++) {dbXdata[i]dbXMin?dbXMin=dbXdata[i]:dbXdata[i]dbXMax?dbXMax=dbXdata[i]:dbXMax;dbYdata[i]dbYMin?dbYMin=dbYdata[i]:dbYdata[i]dbYMax?dbYMax=dbYdata[i]:dbYMax; }//调整最大最小值dbXMax=dbXMax+(dbXMax-dbXMin)/iPt;dbXMin=dbXMin-(dbXMax-dbXMin)/iPt;dbYMax=dbYMax+(dbYMax-dbYMin)/iPt;dbYMin=dbYMin-(dbYMax-dbYMin)/iPt;//换算数据并画出折线doubledbXRatio=(xMax-xOrg)/(dbXMax-dbXMin);doubledbYRatio=(yOrg-yMin)/(dbYMax-dbYMin);int x=(int)(dbXRatio*(dbXdata[0]-dbXMin)+xOrg);int y=(int)(yOrg-dbYRatio*(dbYdata[0]-dbYMin));pDC-MoveTo (x,y);for(i=1;iiPt;i++){x=(int)(dbXRatio*(dbXdata[i]-dbXMin)+xOrg);y=(int)(yOrg-dbYRatio*(dbYdata[i]-dbYMin));pDC-LineTo (x,y);}//画轴pDC-MoveTo (xOrg,yOrg);pDC-LineTo (xMax,yOrg);pDC-MoveTo (xOrg,yOrg);pDC-LineTo (xOrg,yMin);//写轴标题x=(xMax-xOrg)/2;y=yOrg+10;pDC-TextOut (x,y,Force);x=xOrg-20;y=(yOrg-yMin)/2;pDC-TextOut (x,y,D);y+=15;pDC-TextOut (x,y,i);y+=15;pDC-TextOut (x,y,P);结果:编程思想:本例中,将实际的坐标值转换为设备坐标后画出折线。为了完成这种转换,本例假定实际的显示窗口大约是700*400像素。为了使折线在窗口中显示的大小恰当,首先求出要显示折线的x轴和y轴坐标的最大值和最小值。随后为了使折线离开坐标轴一点,分别对求出的最大值和最小值作了一下调整。接下来利用公式:换算比率=(屏幕坐标的最大值-屏幕坐标的原点)/(实际数据的最大值-实际数据的最小值)分别求出了x轴和y轴的换算比率。再利用公式:设备x坐标=换算比率*(实际x坐标-实际x坐标的最小值)+屏幕x坐标的原点设备y坐标=屏幕y坐标的原点-换算比率*(实际y坐标-实际y坐标的最小值)分别求出每一点对应的设备坐标,然后调用CDC的LineTo()函数画出折线。注意,此处所绘坐标系的原点并不对应实际数据(0,0),而是(dbXMin,dbYMin)。第十一章文档/视图结构例11.3简易计数器程序:利用定时器,构造一个计数器,在视图中显示不断变化的计数器值。单击鼠标左键开始计数,单击鼠标右键停止计数。代码:建立文档类的定义(头文件),加入一个int类型的变量作为计数器。public:intm_iCount;修改文档类的OnNewDocument()函数,对m_iCount进行初始化:修改视图类的OnDraw()函数,加入显示位置代码:用ClassWizard建立鼠标左键按下的消息处理函数OnLButtonDown(),并加入代码:用ClassWizard建立单击鼠标右键按下的消息处理函数OnRButtonDown(),并加入代码:用ClassWizard建立定时器消息处理函数OnTimer(),并加入代码:CMyDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);pDoc-m_iCount++;Invalidata(

文档评论(0)

juhui05 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档