《实验一图形程序设计基础.ppt》由会员分享,可在线阅读,更多相关《实验一图形程序设计基础.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验一图形程序设计基础 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望MFC结构如下:结构如下:二实验的主要目的:二实验的主要目的:1、让学生掌握利用、让学生掌握利用MicrosoftVisualC+6.0平台,进行图平台,进行图形程序设计的基本方法与步骤;形程序设计的基本方法与步骤;2、训练学生利用计算机分析和解决实际问题的能力;、训练学生利用计算机分析和解决实际问题的能力;3、锻炼学生撰写科技实验报告的能力。、锻炼学生撰写科技实验报告的能力。三实验步骤:三实验
2、步骤:1.建立工程:建立工程:打开打开VisualC+;选择选择FileNewProjectsMFCAppWizardexe,在,在ProjectName内内输入工程名(如输入工程名(如FtistP),并在),并在Location选择程序文件存储路径,最后点击选择程序文件存储路径,最后点击OK。2.选择欲创建的文档类型:选择欲创建的文档类型:在在Step1对话框中,选择对话框中,选择SingleDocument或或MultipleDocuments或或Dialogbased中任意一项均可,但后续操作不一样。(如选中任意一项均可,但后续操作不一样。(如选MultipleDocuments)点击)
3、点击Finish(若还有其他需要则选(若还有其他需要则选Next););在如下在如下NewProjectInformation框内下点击框内下点击OK。3.编写图形程序:编写图形程序:在如上图所示的此新建的在如上图所示的此新建的Project内,内,Workspace视窗下视窗下选择选择FileView,然后点击,然后点击FirstPFiles展开它,在展开它,在SourceFiles中找到中找到FirstPView.cpp文件,在该文件中找到文件,在该文件中找到CView类下的列函数:类下的列函数:voidCFirstPView:OnDraw(CDC*pDC)CFirstPDoc*pDoc=
4、GetDocument();ASSERT_VALID(pDoc);/TODO:adddrawcodefornativedatahere(添加代码处添加代码处)在该函数内添加相应的绘图程序代码,图形形状不作统一要求,可自由在该函数内添加相应的绘图程序代码,图形形状不作统一要求,可自由设计,代码自己编写,也可用教材上设计,代码自己编写,也可用教材上P20实例来练习。实例来练习。教材上教材上P20实例代码如下:实例代码如下:/使用缺省画笔画了一条直线,画笔的属性是实线型、使用缺省画笔画了一条直线,画笔的属性是实线型、1个像素宽、黑色个像素宽、黑色pDC-MoveTo(100,100);pDC-Lin
5、eTo(200,200);CPen*pOldPen;/申请一个画笔指针,用于保存当前设备环境下的画笔申请一个画笔指针,用于保存当前设备环境下的画笔CPendashPen;/以下创建画笔并绘制直线以下创建画笔并绘制直线/创建一个画笔,其属性是虚线型、创建一个画笔,其属性是虚线型、1个像素宽、红色个像素宽、红色dashPen.CreatePen(PS_DASH,1,RGB(255,0,0);/PS_SOLID:Penissolid;/PS_DASH:Penisdashed;PS_DOT:Penisdotted;PS_DASHDOT:Penhasalternatingdashesanddots/PS
6、_DASHDOTDOT;PS_INSIDEFRAME:Penissolid;PS_NULL:PenisinvisiblepOldPen=pDC-SelectObject(&dashPen);/选择新画笔,用选择新画笔,用pOldPen保留原画保留原画笔笔pDC-LineTo(300,100);/使用新画笔绘制直线使用新画笔绘制直线pDC-SelectObject(pOldPen);/绘制完毕一定要恢复原画笔绘制完毕一定要恢复原画笔pDC-LineTo(400,200);/再次使用原画笔再绘制直线再次使用原画笔再绘制直线4编译调试程序,直到通过运行后得到需要的结论。编译调试程序,直到通过运行后得
7、到需要的结论。注:注:若在:若在:voidCFirstPView:OnDraw(CDC*pDC)CFirstPDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);/TODO:adddrawcodefornativedatahere。函数前添加下列函数,即可在相应线段中插入字符函数前添加下列函数,即可在相应线段中插入字符“0”VOIDCALLBACKDrawZero(intX,inty,LPARAMlpData)CDC*pDC;pDC=(CDC*)lpData;if(X%20=0)pDC-TextOut(X,y,_T(0);再在书上代码:再在书上代码:pDC-Mo
8、veTo(100,100);pDC-LineTo(200,200);下添加下列语句:下添加下列语句::LineDDA(100,100,200,200,(LINEDDAPROC)DrawZero,(long)pDC);/画“0”函数即可在直线段(即可在直线段(100,100)到()到(200,200)上每隔)上每隔20个段位长度个段位长度处输出一个处输出一个“0”符号。符号。其运行结果如下图所示:其运行结果如下图所示:5.分析总结,并提交实验报告。(略)分析总结,并提交实验报告。(略)注:各函数说明如下。注:各函数说明如下。1CDC:MoveToCPointMoveTo(intx,inty);R
9、eturnValueThex-andy-coordinatesofthepreviouspositionasaCPointobject.ParametersxSpecifiesthelogicalx-coordinateofthenewposition.ySpecifiesthelogicaly-coordinateofthenewposition.RemarksMovesthecurrentpositiontothepointspecifiedbyxandy(orbypoint).2CDC:LineToBOOLLineTo(intx,inty);ReturnValueNonzeroifthe
10、lineisdrawn;otherwise0.ParametersxSpecifiesthelogicalx-coordinateoftheendpointfortheline.ySpecifiesthelogicaly-coordinateoftheendpointfortheline.RemarksDrawsalinefromthecurrentpositionupto,butnotincluding,thepointspecifiedbyxandy(orpoint).Thelineisdrawnwiththeselectedpen.Thecurrentpositionissettox,y
11、ortopoint.3CPen:CreatePenBOOLCreatePen(intnPenStyle,intnWidth,COLORREFcrColor);ReturnValueNonzero,orthehandleofalogicalpen,ifsuccessful;otherwise0.ParametersnPenStyleSpecifiesthestyleforthepen.Foralistofpossiblevalues,seethenPenStyleparameterintheCPenconstructor.nWidthSpecifiesthewidthofthepen.ifthi
12、svalueis0,thewidthindeviceunitsisalways1pixel,regardlessofthemappingmode.crColorContainsanRGBcolorforthepen.RemarksTheCreatePeninitializesapenwiththespecifiedstyle,width,andcolor.Thepencanbesubsequentlyselectedasthecurrentpenforanydevicecontext.4CDC:SelectObjectCPen*SelectObject(CPen*pPen);ReturnValueApointertotheobjectbeingreplaced.ThisisapointertoanobjectofoneoftheclassesderivedfromCGdiObject.ThereturnvalueisNULLifthereisanerror.ParameterspPenApointertoaCPenobjecttobeselected.RemarksSelectsanobjectintothedevicecontext.5、TextOut(x,y,_T(“0”);在点(在点(x,y)处输出符号)处输出符号“0”。