资源描述:
《《windows程序设计基础》实验五》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验五:应用程序数据的图形显示一、实验目标:实验中,将学习如何使用CDC类,将应用程序数据用视图显示出來。二、实验环境要求:硬件环境:处理器主频为166MHz或更高,内存大于32*硬盘空间大于500M,CD-ROM驱动器,VGA或更高分辨率显示器,鼠标,键盘等。软件环境:Windows98及其以后版本的操作系统,VisualC++6.0Enterprise。三、本实验完成案例工程:将用户选小的人员的体温数据用折线显示的屏幕上。实验开始前的基础是完成实验四。四、实验过程要求:1•确定文档的大小,设定滚动条定位到CTmpView:
2、:OnlnitialUpdate()函数,编辑下面两行代码:sizeTotal.ex=sizeTotal.cy=100;SetScrollSizes(MMTEXT,sizeTotal);使之成为sizeTotal.ex=1100;sizeTotal.cy=850;SetScrollSizes(MMLOENGLISH,sizeTotal);2.再编写CTmpView::OnDraw(CDC*pDC)函数读懂下面的程序代码,用它替换你程序中的代码,这段代码在(・・实验五codeEx51.epp)中。voidCTmpView:
3、:OnDraw(CDC*pDC){CTmpDoc*pDoc=GetDocument();ASSERT_VALTD(pDoc);//SavethecurrentstateofthedevicecontextintnDC=pDC~>SaveDC();constCTmpDataList&pData=pDoc->GetDocList();//Makeasmallarraycontainingthe//recordsforthecurrentfind.//Weuseanarraytotakeadvantageofindexedacces
4、sCArrayarrFindData;POSITIONpos=pData.GetHeadPosition();while(pos)CTmpDatasd=pData・GetNext(pos);if(sd.GetName()二二pDoc->GetCurrentFind())arrFindData.Add(sd);}intnTemperature=arrFindData・GetSize();if(nTemperature==0)return;//Someconslantsizes(indevi
5、ceunits)constintAXISDIVIDERLENGTH=6;constintAXIS_FONTJIEIGHT=24;constint11EADING_FONT_HEIGHT=36;//CreatefontforaxislabelsCFontAxisFont;if(AxisFont.CreateFont(AXIS_FONTJ1EIGHT,0,0,0,0,0,0,0,0,0,0,0,FF_R0MAN,0))pDC->SelectObject(&AxisFont);else{AfxMessageBox("Unableto
6、createAxisfont");return;CPenAxisPen;if(AxisPen.CreatePen(PS_SOLID,1,RGB(0,0,0)))pDC->SelectObject(&AxisPen);AfxMessageBox("UnabletocreateAxisPen");return;}//Arraytographco-ordinatesaswegoCArrayCoordArray;for(inti=0;i7、CPoint(0,0));//SetviewportorigintobottomleftcorncrofwindowCPointptBottomLeft(0,-850);pDC->LPtoDP(&ptBottomLeft);pDC->SetViewportOrg(ptBottomLeft);//Baseco-ordinatesforaxesconstCPointORIGIN(100,100);constCPointYEXTENT(ORIGIN,x,ORIGIN,y+650);constCPointX_EXTENT(ORIGIN
8、,x+900,ORIGIN,y);//DrawaxespDC->MoveTo(Y_EXTENT);pDC->LineTo(ORIGIN);pDC->LineTo(X_EXTENT);intnLabelPos=Y.EXTENT.y+((ORIGIN,y-Y_EXTENT.y)/