ImageVerifierCode 换一换
格式:PPT , 页数:17 ,大小:766.50KB ,
文档编号:3604974      下载积分:18 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-3604974.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(三亚风情)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(VC++程序第05章-绘图输出课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

VC++程序第05章-绘图输出课件.ppt

1、GDI与MFC n概述 nGDI Windows图形设备接口n绘图三大要素画布、绘图工具、绘图动作 nDC GDI将画布和绘图工具合在一起称为DC或“设备描述表”nGDI对象类MFC将GDI中的绘图工具封装到CGdiObject类中,称为GDI对象类 1.CDC 类MFC将画布、绘图动作和GDI对象封装到CDC类中,称为设备环境类1.MFC程序中的绘图方法:1.取得CDC对象、2.创建并选择CGdiObject对象、将CGdiObject对象附加到CDC对象、使用该CDC对象的绘图成员函数绘制图形 1GDI与MFC n设备环境类 nCPaintDC n通常以窗口内用户区为目标,可以在窗口内绘制

2、图形,适用于在接到WM_PAINT消息时进行绘图操作 n创建方法CPaintDC dc(this)nCClientDC n通常以窗口内用户区为目标,可以在窗口内绘制图形,适用于在未接到WM_PAINT消息时,“主动”进行绘图操作 n创建方法CClientDC dc(this);nCWindowDC n通常以整个窗口为目标,可以在整个窗口(含边框)上绘制图形,用法与CClientDC相同,只是绘制范围更大 n创建方法CWindowDC dc(this)nCMetaFileDC n通常用于创建Windows图元文件 2GDI与MFC nGDI对象类 nCPen类 n该类封装一个Win32画笔对象。

3、画笔对象可用于画线及绘制有形边框,并可以指定它的颜色、粗细、虚实等属性 nCBrush类 n该类封装一个Win32画刷对象。画刷对象定义了一种位图形式的画笔,可用于对区域内进行填充等操作 nCBitmap类 n该类封装一个Windows位图对象,位图对象可以用来进行显示图像和创建画刷等操作nCPalette类 n该类封装一个Windows调色板对象。调色板对象提供了一个从应用程序到颜色输出设备的接口,在某些场合使用它可以改善颜色显示效果nCRgn类 n该类封装一个Windows区域对象。一个区域一般是窗口之中的一个椭圆形的或者多边形的区域。区域对象可用于剪裁、填充及判断等操作 3绘制图形-开始

4、绘图 n画一条直线 pDC-MoveTo(CPoint(10,10);pDC-LineTo(CPoint(55,30);n绘制一个矩形 pDC-Rectangle(CRect(10,60,55,90);n绘制弧 pDC-Arc(CRect(10,120,55,150),/圆弧外接矩形CPoint(10,120),/用来计算实际起点CPoint(55,120);/用来计算实际终点 n绘制椭圆或圆 pDC-Ellipse(CRect(255,10,310,30);n绘制饼图 pDC-Pie(CRect(255,60,310,90),CPoint(255,60),CPoint(310,60);4绘制

5、图形-开始绘图 n绘制指定风格的矩形 pDC-DrawEdge(CRect(255,120,310,150),EDGE_BUMP,BF_RECT);n绘制一系列相邻的线 CPoint pt4;pt0=CPoint(500,10);pt1=CPoint(515,15);pt2=CPoint(520,20);pt3=CPoint(560,30);pDC-Polyline(pt,4);n绘制一个封闭多边形 CPoint pt4;pt0=CPoint(500,60);pt1=CPoint(555,60);pt2=CPoint(535,70);pt3=CPoint(555,90);pDC-Polygon

6、(pt,4);n绘制圆角矩形 pDC-RoundRect(CRect(5,185,50,215),CPoint(15,15);5绘制图形-更改画笔 nCPenn画笔可用于绘制线条、曲线以及勾勒形状轮廓n通过修改画笔的属性可以更改线条的外观和颜色 nCPen用法 n创建画笔对象 n指定画笔的属性 n将画笔附加到CDC对象 n绘制图形 n编码CPen*pOldPen;CPen NewPen(PS_DASHDOTDOT,1,RGB(255,0,0);pOldPen=pDC-SelectObject(&NewPen);/绘图pDC-SelectObject(pOldPen);/恢复原画笔6绘制图形-使

7、用画刷 nCBrush n画刷可用于在封闭图形内以指定风格进行填充n画刷类型:原色画刷、阴影画刷和位图画刷 nCPen用法 n创建画刷对象 n指定画刷的属性 n将画刷附加到CDC对象 n绘制图形 n编码CBrush*pOldBrush;CBrush NewBrush(RGB(255,0,0);pOldBrush=pDC-SelectObject(&NewBrush);/绘图pDC-SelectObject(pOldBrush);/恢复原画笔 7绘制图形-使用位图 nCBitmap nCBitmap可用于显示、操作Windows位图n位图可以程序创建也可以作为资源载入n使用程序创建位图(了解)n

8、使用资源位图n添加位图资源IDB_BITMAP1 n显示位图代码CBitmapBitmap;Bitmap.LoadBitmap(IDB_BITMAP1);BITMAP bm;Bitmap.GetObject(sizeof(BITMAP),&bm);/取得图片信息CDC MemDC;MemDC.CreateCompatibleDC(pDC);CBitmap*pOldBitmap=MemDC.SelectObject(&Bitmap);pDC-BitBlt(0,0,bm.bmWidth,bm.bmHeight,&MemDC,0,0,SRCCOPY);MemDC.SelectObject(pOldB

9、itmap);8输出文本 n输出文本n在指定位置输出字符串 pDC-TextOut(10,10,使用TextOut输出);n在指定矩形区域内输出字符串int x=50,45,40,35,30,25,20,15,15,15,15,15,15,15,15,15;pDC-ExtTextOut(10,50,ETO_CLIPPED,CRect(0,40,600,62),“使用ExtTextOut输出,x);n更改颜色 n设置文本颜色 COLORREF OldColor,NewColor=RGB(255,0,0);OldColor=pDC-SetTextColor(NewColor);/输出文本pDC-S

10、etTextColor(OldColor);/恢复原文本颜色n设置文本背景颜色 COLORREF OldColor,NewColor=RGB(255,0,0);OldBkColor=pDC-SetBkColor(NewColor);/输出文本pDC-SetBkColor(OldColor);/恢复原文本颜色n设置背景模式 CDC:SetBkMode(int nBkMode)9输出文本 n更改字型、字体 nCFont类封装了GDI中的字体对象 n使用字体的方法如下 n先创建CFont对象;n对字体对象进行初始化;n附加到CDC对象;n使用文本输出函数输出文字n创建、使用简单字体 CFont My

11、Font1,MyFont2,*pOldFont;MyFont1.CreatePointFont(300,隶书,pDC);/MyFont1需定义为CMyTextView成员对象MyFont2.CreatePointFont(350,黑体,pDC);/MyFont2需定义为CMyTextView成员对象pDC-TextOut(10,20,使用系统默认字体、默认输出尺寸输出);pOldFont=pDC-SelectObject(&MyFont1);pDC-TextOut(10,50,使用隶书输出,尺寸=30磅);pDC-SelectObject(&MyFont2);pDC-TextOut(10,12

12、0,使用黑体输出,尺寸=35磅);pDC-SelectObject(pOldFont);10输出文本 n创建、使用复杂字体方法一 CFont*pOldFont,MyFont;MyFont.CreateFont(50,25,45,0,FW_BOLD,1,1,0,GB2312_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DRAFT_QUALITY,DEFAULT_PITCH|FF_SCRIPT,隶书);pOldFont=pDC-SelectObject(&MyFont);pDC-TextOut(10,70,使用CreateFont建立字体输出);p

13、DC-SelectObject(pOldFont);11输出文本 n创建、使用复杂字体方法二 CFont*pOldFont,MyFont;LOGFONT lf;pOldFont=pDC-GetCurrentFont();:GetObject(:GetStockObject(SYSTEM_FONT),sizeof(LOGFONT),&lf);lf.lfItalic=1;lf.lfWidth=20;MyFont.CreateFontIndirect(&lf);pOldFont=pDC-SelectObject(&MyFont);pDC-TextOut(10,70,字体修改后的输出);pDC-Sel

14、ectObject(pOldFont);12坐标与坐标模式 n坐标模式 nCDC:SetMapModee(int nMapMode)n窗口和视口 nSetWindowOrg(POINT point)/设置窗口左上角值nSetWindowExt(SIZE size)/设置窗口的大小nSetViewportOrg(POINT point)/设置视口左上角值SetViewportExt(SIZE size)/设置视口的大小nMM_ANISOTROPIC坐标模式CRect clientRect;GetClientRect(clientRect);pDC-SetMapMode(MM_ANISOTROPI

15、C);pDC-SetWindowOrg(0,0);pDC-SetWindowExt(500,500);pDC-SetViewportOrg(0,0);pDC-SetViewportExt(clientRect.right,clientRect.bottom);13坐标与坐标模式 nMM_ISOTROPIC坐标模式CRect clientRect;GetClientRect(clientRect);pDC-SetMapMode(MM_ISOTROPIC);pDC-SetWindowOrg(0,0);pDC-SetWindowExt(500,500);pDC-SetViewportOrg(0,0)

16、;pDC-SetViewportExt(clientRect.right,clientRect.bottom);14坐标与坐标模式 n平移坐标CRect clientRect;GetClientRect(clientRect);pDC-SetMapMode(MM_ISOTROPIC);pDC-SetWindowOrg(200,0);pDC-SetWindowExt(500,500);pDC-SetViewportOrg(0,0);pDC-SetViewportExt(clientRect.right,clientRect.bottom);15坐标与坐标模式 n修改坐标方向CRect clien

17、tRect;GetClientRect(clientRect);pDC-SetMapMode(MM_ANISOTROPIC);pDC-SetWindowOrg(0,0);pDC-SetWindowExt(clientRect.right,-clientRect.bottom);pDC-SetViewportOrg(0,clientRect.bottom);pDC-SetViewportExt(clientRect.right,clientRect.bottom);pDC-MoveTo(0,0);pDC-TextOut(0,16,(0,0);pDC-LineTo(300,200);pDC-Tex

18、tOut(300,200,(300,200);pDC-LineTo(600,120);pDC-TextOut(600,120,(600,120);16习题 1.GDI绘图有哪几大要素?2.有哪几种设备环境类,各有什么用处?3.GDI有哪几类绘图工具?4.有哪几种坐标模式,各有什么特点?5.简述使用绘图工具类对象的步骤。6.有哪几种显示文字的函数,各有什么功能?7.编写一个程序显示一象棋棋盘,棋盘上有棋子,棋盘两侧有对弈者头像和名字(名字自取)。要求只有棋子和对弈者头像可以使用图片,画面要美观。8.2014年美国GDP 为16万亿美元,中国GDP为9万亿美元,假设未来一段时间内,美国GDP每年以2.5%速度增长,中国GDP每年以7%速度增长,绘制从2014年到2049年两国GDP增长曲线。要求设置视图左下角为坐标原点,并绘制坐标轴。9.创建一个文本文件,编辑录入若干个点的坐标,编写程序读入该文件中这些点的坐标,设置窗口右为x轴正方向,向上为y轴正方向。要求显示全部这些点并绘制坐标轴。在9题的基础上,从第一个点到最后一个点画路径连接所有的点,使得从第一个点到最后一个点且连接所有点的路径总长度最短17

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|