第八章 图形.ppt

上传人:s****8 文档编号:68960805 上传时间:2022-12-30 格式:PPT 页数:17 大小:275.50KB
返回 下载 相关 举报
第八章 图形.ppt_第1页
第1页 / 共17页
第八章 图形.ppt_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《第八章 图形.ppt》由会员分享,可在线阅读,更多相关《第八章 图形.ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、联系方式:北京源智天下科技有限公司第八讲:第八讲:图形 杨章伟杨章伟e-mail:1-2北京源智天下科技有限公司联系方式:课程内容安排课程内容安排理解图形设备接口理解图形设备接口设备描述表设备描述表Windows的的图形形设备接口接口对象象 GDI对象的象的创建建 画笔的使用画笔的使用 画刷的使用画刷的使用 综合练习综合练习思考和习题思考和习题 1-3北京源智天下科技有限公司联系方式:理解图形设备接口(理解图形设备接口(GDI)为为了了实实现现Windows应应用用程程序序的的图图形形化化,Windows操操作作系系统统提提供供了了大大量量的的函函数数来来实实现现绘绘图图的的要要求求。这这些些

2、函函数数的的集合,就称为图形设备接口集合,就称为图形设备接口GDI。1-4北京源智天下科技有限公司联系方式:设备描述表概述设备描述表概述 设设备备描描述述表表(Device Context简简称称为为DC),也也称称设设备备上上下下文文或或设设备备环环境境,其其是是一一种种包包含含各各种种绘绘图图属属性性(如如前前面面所所说说的的字字体体、颜颜色色)和和方方法法(即即各各种种绘绘图图函函数数)的的数数据据结结构构。设设备备描描述述表表定定义义了了设设备备、画画图图工工具具和和画画图图信信息息其其不不仅仅可可以以绘绘制制各各种种图图形形,而而且且还还可可以以确确定定在在应应用用窗窗口口中中绘绘制

3、制图图形形的的方方式式和和图图形形的的样样式式。读读者者可可以以将将设设备备描描述述表表看看作作是是一一个个画画家家的的画画室室,其其中中包包含含了了画画笔笔、画画刷刷、画画布布等等工工具具,使使用用画画室室可可以以创创作作出出好好的的作作品品,如如图图8-2所所示。示。1-5北京源智天下科技有限公司联系方式:获取设备描述表获取设备描述表 在在窗窗口口中中绘绘图图之之前前必必须须首首先先获获取取窗窗口口的的设设备备描描述述表表。没没有有设设备备描描述述表表,任任何何绘绘图图函函数数都都无无法法工工作作。一一般般来来说说,可可以以通通过过三种方法来获取对应的设备描述表三种方法来获取对应的设备描述

4、表(DC)。)。使用使用GetDC函数函数 使用使用BeginPaint函数函数 直接构造直接构造CDC对象对象 1-6北京源智天下科技有限公司联系方式:Windows的的图图形形设备设备接口接口对对象象 Windows的的GDI对对象象类类型是由一个型是由一个MFC库类库类表示的,其中表示的,其中CGdiObject类类便是所有便是所有图图形形设备设备接口接口对对象的一个抽象的象的一个抽象的基基类类。然而,。然而,设计设计人人员员在做开在做开发发的的过过程中很少用到基程中很少用到基类类CGdiObject类类,而是,而是经经常用到其派生常用到其派生类类。通常一个。通常一个Windows GD

5、I对对象都是由象都是由CGdiObject的派生的派生类类的的C+对对象所表示的,象所表示的,CGdiObject的派生的派生类类包括包括CBitmap、CBrush、CFont、CPen、CRgn、CPalette 等。等。1-7北京源智天下科技有限公司联系方式:自定义画刷(自定义画刷(CBrush)画刷画刷CBrush类提供用于产生刷子的构造函数类提供用于产生刷子的构造函数CBrush(),在具体使,在具体使用中,该函数通常被重载成其他的三种形式,其结构和功能如下所用中,该函数通常被重载成其他的三种形式,其结构和功能如下所示。示。CBrush(COLORREF crColor):产生某种生

6、某种颜色的色的实心刷子,下面心刷子,下面的代的代码产生了一个生了一个红色的色的实心刷子。心刷子。CBrush br(RGB(255,0,0);dc.SelectObject(br);CBrush(int nIndex,COLORREF crColor):产生某种剖面生某种剖面线的刷的刷子,下面的代子,下面的代码产生了一个生了一个红色的剖面色的剖面线刷子。刷子。CBrush br(HS_FDIAGONAL,RGB(255,0,0);dc.SelectObject(br);CBrush(CBitmap*pBitmap):产生位生位图刷子。下面代刷子。下面代码首先装首先装入了一幅位入了一幅位图(先在

7、(先在资源面板中添加一个位源面板中添加一个位图资源,其源,其ID指定指定为IDB_BITMAP1),再根据),再根据这幅位幅位图产生了一个位生了一个位图刷子。刷子。CBitmap bmp;bmp.LoadBitmap(IDB_BITMAP1);CBrush br(&bmp);dc.SelectObject(br);1-8北京源智天下科技有限公司联系方式:自定义画笔(自定义画笔(CPen)在在Visual C+6.0中,中,CPen类提供用于产生画笔的构造函类提供用于产生画笔的构造函数,其重载函数数,其重载函数CPen(int nPenStyle,int nWidth,COLORREF crCo

8、lor)可以生成一个能够指定线型、线宽可以生成一个能够指定线型、线宽和颜色的画笔,下面的代码生成了一个实线,宽度为和颜色的画笔,下面的代码生成了一个实线,宽度为6,颜色为黑色的画笔。要注意的是,有的线型只在线宽小于颜色为黑色的画笔。要注意的是,有的线型只在线宽小于1时才有效。时才有效。CPen newpen(PS_SOLID,6,RGB(0,0,0);dc.SelectObject(&newpen);提示:在创建自定义画笔后,需要使用提示:在创建自定义画笔后,需要使用SelectObject函数将函数将自定义的画笔对象选入到设备描述表中才能使用。自定义的画笔对象选入到设备描述表中才能使用。1-

9、9北京源智天下科技有限公司联系方式:画笔的使用画笔的使用 通常,使用绘图工具的一般步骤为:通常,使用绘图工具的一般步骤为:(1)创建刷子、笔,若该绘图工具已初始化,则可以)创建刷子、笔,若该绘图工具已初始化,则可以直接跳到第(直接跳到第(3)步。)步。(2)对不能仅仅由构造函数来创建的绘图工具,需要)对不能仅仅由构造函数来创建的绘图工具,需要通过调用它们的成员函数来对其进行初始化。通过调用它们的成员函数来对其进行初始化。(3)使用)使用SelectObject函数将自定义绘图工具选入设函数将自定义绘图工具选入设备描述表。用备描述表。用SelectStockObject将库存绘图工具选入将库存绘

10、图工具选入设备描述表。设备描述表。(4)进行绘图操作。)进行绘图操作。(5)将旧的)将旧的GDI对象选回设备描述表,若第(对象选回设备描述表,若第(1)步中)步中是用是用new创建对象,使用完毕后应该用创建对象,使用完毕后应该用Delete删除该对删除该对象。象。1-10北京源智天下科技有限公司联系方式: 使用画笔画线使用画笔画线 创建一个建一个单文档文档应用程序后,添加消息函数,用程序后,添加消息函数,输入如下代入如下代码:01 void CMyView:OnLButtonUp(UINT nFlags,CPoint point)02 03/TODO:Add your message hand

11、ler code here and/or call default04CPen newPen(PS_SOLID,2,RGB(255,0,0);/创建画笔建画笔05CClientDC dc(this);/获取取设备描述表描述表06CPen*pOldPen=dc.SelectObject(&newPen);/定定义画笔指画笔指针并制定返回画笔位置并制定返回画笔位置07dc.MoveTo(m_ptOrigin);/保存原位置保存原位置08dc.LineTo(point);/画画线09dc.SelectObject(pOldPen);/将旧画笔将旧画笔选回回设备描描述表述表10CView:OnLBut

12、tonUp(nFlags,point);11 1-11北京源智天下科技有限公司联系方式:1-12北京源智天下科技有限公司联系方式:画刷的使用画刷的使用 在在Visual C+中中,拖拖动动鼠鼠标标可可以以画画出出一一个个矩矩形形区区域域,因因此此其其中中的的两两点点也也可可以以确确定定一一块块矩矩形形区区域域,这这就就需需要要使使用用画刷来实现。画刷来实现。下下面面范范例例定定义义一一个个带带颜颜色色的的画画刷刷,该该主主窗窗口口的的编编辑辑区区中中可以画出带颜色的矩形,实现代码如下所示。可以画出带颜色的矩形,实现代码如下所示。1-13北京源智天下科技有限公司联系方式:示例代码示例代码01 v

13、oid CMyView:OnLButtonUp(UINT nFlags,CPoint point)02 03/TODO:Add your message handler code here and/or call default04CBrush br(RGB(0,0,255);/格式化画格式化画刷刷05CClientDC dc(this);/选入入设备描描述表述表06CBrush*pOldBr=dc.SelectObject(&br);07dc.Rectangle(CRect(m_ptOrigin,point);/画画矩形矩形08dc.SelectObject(pOldBr);/选择对象象09

14、CView:OnLButtonUp(nFlags,point);10 1-14北京源智天下科技有限公司联系方式:1-15北京源智天下科技有限公司联系方式:综合练习综合练习 建立一个应用程序,输出一个圆形,并可以通过工具栏建立一个应用程序,输出一个圆形,并可以通过工具栏来改变圆形的颜色、外框线型宽度合内部填充色。其运来改变圆形的颜色、外框线型宽度合内部填充色。其运行效果如图行效果如图8-17、8-18及及8-19所示。所示。1-16北京源智天下科技有限公司联系方式:提示提示在主框架类的在主框架类的OnDraw函数中添加代码。该练习需要选取颜函数中添加代码。该练习需要选取颜色后实时改变画笔的颜色,

15、这就需要使用到程序流程语句色后实时改变画笔的颜色,这就需要使用到程序流程语句中的多重选择,此处可以采用中的多重选择,此处可以采用case语句来实现。此外,语句来实现。此外,该练习实现的功能是在主框架中,因此将实现代码添加到该练习实现的功能是在主框架中,因此将实现代码添加到主框架类的主框架类的OnDraw函数中即可函数中即可。1-17北京源智天下科技有限公司联系方式:思考和习题思考和习题什么是什么是Windows图形设备接口图形设备接口GDI?什么是设备描述表什么是设备描述表DC?其有什么作用?其有什么作用?如何获取设备描述表?如何获取设备描述表?如何创建画刷、画笔等如何创建画刷、画笔等GDI对象?对象?在在SDI下,在鼠标指定位置输出字符串下,在鼠标指定位置输出字符串“Welcome to 21 Visual C+”。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁