




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Windows编程实验报告题 目: 图形与文本 专 业: 班 级: 学 号: 姓 名: 指导老师: 2014年10月19日一、实验目的 熟悉MFC技术中图形和文本的使用。二、实验环境Windows7操作系统,VC+6.0三、实验内容【程序1:】编写一个单文档的应用程序,在视图窗口中显示一行文本,要求文本颜色为红色,背景色为黄色。关键代码:void CSy2_1View:OnDraw(CDC* pDC)CSy2_1Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCString outstr = 显示一行文本;pDC-SetBkColor(RGB(255,255,0);pDC-SetTextColor(RGB(255,0,0);pDC-TextOut(100,100,outstr);结果截图:【程序2:】编写一个单文档的应用程序,在客户区使用不同的画笔和画刷绘制点、折线、曲线、圆角矩形、弧、扇形和多边形等几何图形。关键代码:void CSy2_2View:OnDraw(CDC* pDC)CSy2_2Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCPen *PenOld,PenNew;CBrush *BrushOld,BrushNew;COLORREF rgbColor = RGB(255,0,0),RGB(0,255,0),RGB(0,0,255),RGB(255,255,0);/画一个矩形PenNew.CreatePen(PS_SOLID,4,rgbColor1);BrushNew.CreateSolidBrush(rgbColor3);PenOld = pDC-SelectObject(&PenNew);BrushOld = pDC-SelectObject(&BrushNew);pDC-Rectangle(20,200,200,300);PenNew.DeleteObject();BrushNew.DeleteObject();/画一个椭圆弧线PenNew.CreatePen(PS_DASH,1,rgbColor0);BrushNew.CreateSolidBrush(rgbColor2);pDC-SelectObject(&PenNew);pDC-SelectObject(&BrushNew);pDC-Arc(20,200,200,300,200,250,20,200);PenNew.DeleteObject();BrushNew.DeleteObject();/画一个扇形PenNew.CreatePen(PS_SOLID,1,rgbColor2);BrushNew.CreateSolidBrush(rgbColor0);pDC-SelectObject(&PenNew);pDC-SelectObject(&BrushNew);pDC-Pie(420,120,540,240,520,160,420,180);PenNew.DeleteObject();BrushNew.DeleteObject();/画一条折线PenNew.CreatePen(PS_SOLID,1,rgbColor2);pDC-SelectObject(&PenNew);POINT pt3=10,100,50,60,120,80;pDC-Polyline(pt,3);PenNew.DeleteObject();/画一个点pDC-SetPixel(CPoint(150,150),rgbColor0);/画一个圆角矩形PenNew.CreatePen(PS_SOLID,1,rgbColor1);BrushNew.CreateSolidBrush(rgbColor2);pDC-SelectObject(&PenNew);pDC-SelectObject(&BrushNew);pDC-RoundRect(210,210,410,410,30,30);PenNew.DeleteObject();BrushNew.DeleteObject();/画一条曲线PenNew.CreatePen(PS_SOLID,1,rgbColor1);pDC-SelectObject(&PenNew);POINT pt14 = 20,100,50,60,120,80,150,160;pDC-PolyBezier(pt1,4);PenNew.DeleteObject();/画一个多边形PenNew.CreatePen(PS_SOLID,1,rgbColor2);BrushNew.CreateSolidBrush(rgbColor1);pDC-SelectObject(&PenNew);pDC-SelectObject(&BrushNew);POINT pt24 = 130,100,160,60,220,80,250,160;pDC-Polygon(pt2,4);PenNew.DeleteObject();BrushNew.DeleteObject();pDC-SelectObject(PenOld);pDC-SelectObject(BrushOld);结果截图:【程序3:】利用函数CreateFontIndirect()创建黑体字体,字体高度为30像素,宽度为25像素,并利用函数DrawText()在客户区以该字体输出文本“VC+”。关键代码:void CSy2_3View:OnDraw(CDC* pDC)CSy2_3Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCFont *OldFont,NewFont;LOGFONT MyFont = 30,25,0,0,0,1,1,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,黑体;NewFont.CreateFontIndirect(&MyFont);OldFont = pDC-SelectObject(&NewFont);CRect rect;rect.SetRect(CPoint(150,150),CPoint(250,250);pDC-DrawText(VC+,&rect,DT_CENTER);pDC-SelectObject(OldFont);NewFont.DeleteObject();结果截图:【程序4:】编写一个单文档的应用程序,在视图窗口中显示3个圆,通过使用不同颜色的画笔以及画刷来模拟交通红绿灯。关键代码:void CTest2View:OnDraw(CDC* pDC)CTest2Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereCPen *PenOld,PenNew;CBrush *BrushOld,BrushNew;PenOld = (CPen *) pDC-SelectStockObject(BLACK_PEN);/使用库存黑色画笔BrushNew.CreateSolidBrush(RGB(255,0,0);/红色BrushOld=pDC-SelectObject(&BrushNew);CRect rect1(0,0,100,100);pDC-Ellipse(&rect1);BrushNew.DeleteObject();/每次使用完新画刷,释放掉新画刷BrushNew.CreateSolidBrush(RGB(255,255,0);/黄色pDC-SelectObject(&BrushNew);CRect rect2(0,100,100,200);pDC-Ellipse(&rect2);BrushNew.DeleteObject();BrushNew.CreateSolidBrush(RGB(0,255,0);/绿色pDC-SelectObject(&BrushNew);CRect rect3(0,200,100,300);pDC-Ellipse(&rect3);BrushNew.DeleteObject();/恢复系统默认的GDI对象pDC-SelectObject(PenOld);pDC-SelectObject(BrushOld);结果截图:【程序5:】编写一个单文档的应用程序,在视图窗口实现一行文本的水平滚动显示,要求每个周期文本为红、黄两种颜色,字体为宋、楷两种字体。关键代码:public:bool flag;/用于标记当前文本颜色字体状态int x;/用于指定文本的起始位置/初始化变量CSy2_5View:CSy2_5View()x=0;/文字滚动起点flag=1;/标记当前文字出于哪种状态,初始定为宋体红字/ TODO: add construction code herevoid CSy2_5View:OnDraw(CDC* pDC)CSy2_5Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereSetTimer(0,100,NULL);/启动定时器,每隔0.1秒执行一次任务CString outString=滚动的文字;COLORREF strRgb=RGB(255,0,0),RGB(255,255,0);pDC-SetBkMode(TRANSPARENT);/设置背景模式CRect r1;GetClientRect(&r1);/获取当前客户区的矩形大小赋值给r1CFont *OldFont,NewFont; if( flag = 1)NewFont.CreatePointFont(200,宋体,NULL);pDC-SetTextColor(strRgb0);OldFont=pDC-SelectObject(&NewFont);pDC-TextOut(0+x,0,outString);pDC-SelectObject(OldFont);NewFont.DeleteObject();if(x=r1.right)/如果大于视图边界就切换文本颜色和字体属性,令flag=0;x=0;flag=0;if( flag = 0)NewFont.CreatePointFont(200,楷体,NULL);pDC-SetTextColor(strRgb1);OldFont=pDC-SelectObject(&NewFont);pDC-TextOut(0+x,0,outString);pDC-SelectObject(OldFont);NewFont.DeleteObject();if(x=r1.right
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二年级品德与生活上册 找长处教学设计 泰山版
- (重庆二诊)重庆市高2025届高三学业质量调研抽测 (第二次)历史试卷(含答案)
- 人的感知与反应(教学设计)-2024-2025学年科学五年级下册人教鄂教版
- 反洗钱工作保密事项培训
- 2024北京资产管理有限公司招聘4人笔试参考题库附带答案详解
- 耳鼻喉科护理指南
- 表情管理培训方案
- 2024中铝铁矿西芒杜项目公开招聘13人笔试参考题库附带答案详解
- 工程施工员培训
- 班主任心理健康知识培训
- 河北石家庄旅游PPT介绍石家庄幻灯片模板
- 宴席设计与菜品开发第二版劳动版宴席菜肴与菜单设计课件
- 2024届高考语文复习-新高考卷文学类阅读真题《建水记》《大师》讲评
- 轴向拉压杆的强度计算
- 中考冠词专项训练100题 (带答案)
- 电力现货市场基础知识
- 公司收支明细表
- GB/T 18323-2001滑动轴承烧结轴套的尺寸和公差
- 2ttk7d6.0gd空调装置使用维护说明书法补充
- 2022年中盐东兴盐化股份有限公司招聘笔试试题及答案解析
- 高铁棘轮补偿安装课件
评论
0/150
提交评论