武汉轻工大学Windows编程实验报告(实验二)姓名:刘文斌院系:数学与计算机学院班级:软件工程1303班学号:老师:刘文涛一、实验目的和要求1、了解CDC类的使用2、掌握常用绘图函数的使用3、学会设置字体4、掌握画笔和画刷的使用5、了解不同文本输出函数的用法二、实验内容【程序1:】编写一个单文档的应用程序,在视图窗口中显示一行文本,要求文本颜色为红色,背景色为黄色。【程序2:】编写一个单文档的应用程序,在客户区使用不同的画笔和画刷绘制点、折线、曲线、圆角矩形、弧、扇形和多边形等几何图形。【程序3:】编写一个单文档的应用程序,在视图窗口中显示3个圆,通过使用不同颜色的画笔以及画刷来模拟交通红绿灯。【程序4:】编写一个单文档的应用程序,在视图窗口实现一行文本的水平滚动显示,要求每个周期文本为红、黄两种颜色,字体为宋、楷两种字体。三、实验过程1、voidCTestView::OnDraw(CDC*pDC){CTestDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);写单文档应用程序test,在视图中显示三个圆,通过使用不同颜色的画笔及画刷来模拟交通红绿灯。在MFC单文档onDraw函数中编写如下代码voidCTestView::OnDraw(CDC*pDC){CTestDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);写程序test,实现一行文本水平滚动显示,要求每个周期文本为红、黄两种颜色,字体为宋、楷两种字体。voidCTestView::OnDraw(CDC*pDC){CTestDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);//TODO:adddrawcodefornativedatahereCFont*OldFont,NewFont;if(flag%2==0){pDC->SetTextColor(RGB(255,0,0));(200,"宋体",NULL);}if(flag%2==1){pDC->SetTextColor(RGB(255,255,0));(200,"楷体",NULL);}OldFont=pDC->SelectObject(&NewFont);pDC->TextOut(x,50,"漂移");pDC->SelectObject(OldFont);SetTimer(1,10,NULL);();}voidCTestView::OnTimer(UINTnIDEvent){//TODO:Addyourmessagehandlercodehereand/orcalldefaultx++;CClientDCdc(this);CRectrect;GetClientRect(&rect);if(x>={x=0;flag++;}Invalidate();CView::OnTimer(nIDEvent);}四、实验总结这次的实验做的时间有点长,不过收获还是蛮多的,比如如何设置文本的字体、颜色等属性。其中很关键的是通过第五个实验使我了解到OnTimer()函数的用法以及对Invalidate()函数的使用。增加对windows编程的兴趣。