计算机软件工程基础课件-高等教育出版社-第三版--资料

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

拇油迄束柬沥瘪退悯部戊栈晓止铅寻瞎皱蛹通浮闻进韵贰孙租笺嘿酥着胶计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版第8章图形设备接口趾归印撇二磋闭震程匙劲伐趾眉潜稠氏困水缺孪塔稍殊署靡借扎吵雄殴驱计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版第8章图形设备接口8.1图形设备接口介绍8.2文本和字体8.3简单图形绘制8.4基础实例――字体应用程序8.5提高实例――绘图应用程序8.6本章小结8.7思考练习题约丛凋儿姻凋讲榔汝社手悯峭淄键刹遭沉连齐苏嗜嗓撒先扮娠祭写诌愚润计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版8.1图形设备接口介绍图形设备接口(graphicsdeviceinterface,GDI)是Windows提供的一个支持图形编程处理的抽象接口。GDI作为Windows的一个组成部分,提供了各种各样的绘图工具。应用程序通过GDI与设备打交道,GDI通过不同设备提供的驱动程序将绘图语句转换为对应的绘图指令,避免了用户直接对硬件进行操作,从而实现设备无关性。所谓设备无关性,是指操作系统屏蔽了硬件设备的差异,使用户编程时不用过多考虑设备的类型,如不同种类的显示器或打印机等。葫州厂治桂搏鸳涸咬条瞩僻胯欧遏预针多雏秀略年铣伶涨蓄斟阅眶豪匿剂计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版8.1.1设备环境类Windows设备环境是GDI的关键元素,GDI作为一个编程接口,提供了大量的与设备无关的图形处理函数,这些函数定义在Windows的三个核心动态链接库之一的Gdi32.dll中,编程时可以通过调用GDI函数绘制不同形状、颜色和类型的图形。MFC对GDI函数和绘图对象进行了封装,因此可以更方便地利用MFC中有关图形处理的类进行图形绘制。闸帆载迈骸燎筷徊届艰敞创谊怀宋风贡谚熬牙挣器谎字迁揍勒候渣弓缓歌计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版8.1.1设备环境类图8-1说明了Windows应用程序绘图的过程。应用程序设备环境图形设备接口设备驱动程序输出设备嗅反钟盯作胁牟月镶融锰竭渣绚册边遂弛诫搔渣蜕通惧搀矩守郝窖积谁栈计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版8.1.1设备环境类MFC提供的DC类包括CDC类、CPaintDC类、CClientDC类、CWindowDC类和CMetaFileDC类等,其中CDC类是MFC设备环境类的基类,其他的MFC设备环境类都是CDC类的派生类。下面对这几个类进行简要介绍。1)CDC类CDC类既可作为其他MFC设备环境类的基类,又可作为一般的设备环境类使用瞻勉臣饼苍萄迢震全妆剿转沛豁倪鹃碧闹寝书颐奴予缮鞘矩惰治杜独暗门计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版8.1.1设备环境类为创建新的CDC设备描述表对象必须调用构造函数CDC::CDC(),接着是初始化。初始化有如下三种方法:CreateDC()为指定设备,创建设备描述表。如果DC已经创建,则CreateDC()方法返回True值,否则返回False。CreateIC()为指定设备创建信息描述表以获取使用设备信息,而无需创建设备描述表。CreateCompatibleDC()创建新存储设备描述表,它与现有设备描述表兼容。辐霉烂蝴麓禁泽搁答功婚群模来镁污盈扎耗钡非碟例苹镀拱灼橙嫉文芝卯计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版8.1.1设备环境类2)CPaintDC类CPaintDC类是OnPaint函数使用的设备环境类,它代表一个窗口的绘图画面,只在相应WM_PAINT消息的函数中使用,大多数情况是在OnPaint()函数中使用。当应用程序窗口出于某种原因需要更新时,系统会想应用程序发送WM_PAINT消息,从而调用OnPaint()函数。在CView类的成员函数OnPaint中就这样定义了一个设备环境。零崇趾腻小音蛇岩连报池商残丧容寒札你灶剪有浸瞥无径诊扒柴驰颂伤幢计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版8.1.1设备环境类voidCView::OnPaint(){//定义一个设备环境CPaintDCdc(this);OnPrepareDC(&dc);OnDraw(&dc);}由于基类CView的OnPaint函数调用了OnDraw函数,因此编程时经常在OnDraw函数中输出图形。湾诌懂熔席纷馆则妄伺躺笛赞然凋菏勘诡斧枚冉瘪肝仁添洼箱戮撬托牧螟计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版8.1.1设备环境类3)CClientDC类CClientDC类可能是使用最多的CDC的派生类,它代表了客户区设备环境,因此所有使用CClientDC类对象完成的绘图操作都位于窗口的客户区内。客户区是指程序窗口中不包括边框、标题栏、菜单栏、工具栏和状态栏等界面元素的内部绘图区。当在客户区绘图时,需要利用CClientDC类定义一个客户区设备环境。隅阀咯售盟锨炕簧辈评第枢贴硅峻坦歇痔荚槽丢独榨跃毒吕委霞承舅音盒计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版8.1.1设备环境类4)CWindowDC类CWindowDC类代表了整个程序窗口设备环境,包括窗口边框、标题栏和菜单栏等非客户区和客户区,因此使用窗口设备环境可以在整个程序窗口内绘图。5)CMetaFileDC类CMetaFileDC类是用于创建一个Windows图元文件的设备环境。Windows图元文件包含了一系列GDI绘图命令,使用这些信息可以重复创建所需的图形或文本。鸵腔硷迪碟钉驴瓦镑去拍眠监倦坟魏艳乔萝拙伏割卒验吾六淮置摈宗吕挥计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版8.1.2GDI对象WindowsGDI提供了一些绘图对象,这些GDI对象是Windows图形设备接口的抽象绘图工具,程序通过GDI对象来设置绘图的工具和风格。GDI对象包含画笔、画刷、字体、位图和调色板。孵冯土纺曰艺哆嗽奄毙额踪硕驹柿荫诉扫皮比忙啊救访股旭浑柯栽葱洲讨计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版8.1.2GDI对象GDI类在MFC中的层次结构如图8-2所示。CObjectCGdiObjectCPenCBrushCFontCBitmapCRgnCPalette俐有百诅期癌玄还雹级泞启患罚砸嘛绞锹裴桔垄会渭碰厚满较逼笼瑰历婴计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版8.1.2GDI对象MFC的CDC类提供了成员函数SelectObject,用于选择用户自己创建的GDI对象,该函数有多种重载形式,可以选择用户已定制好的画笔、画刷、字体和位图等不同类型的GDI对象。访函数常用的重载形式如下所示:CPen*SelectObject(CPen*pPen);CBrush*SelectObjec(CBrush*pBrush);VirtualCFont*SelectObject(CFont*pFont);CBitmap*SelectObject(CBitmap*pBitmap);恫蚊励搪梳我腕逮位围蚕灭莱哉沦赶捣呢虐睦但惠萄收叶篆讽总索执鞍缨计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版8.1.2GDI对象上述函数的参数是一个指向用户已定制好的GDI对象的指针,选择操作成功时函数将返回以前GDI对象的指针,否则返回NULL。MFC的CDC类还提供了成员函数DeleteObject,用于释放创建的GDI对象。使用方式如下:GdiObjectName.DeleteObject();其中GdiObjectName是用户将要释放的GDI对象的名称。煤肯疽伦紊争葛歹琶硕搔伎厚在附键傅妒当咐纹捐婴溜惜兽眠寥枝瓜绅客计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版8.1.2GDI对象WindowsGDI提供了一些绘图对象,这些GDI对象是Windows图形设备接口的抽象绘图工具,程序通过GDI对象来设置绘图的工具和风格。GDI对象包含画笔、画刷、字体、位图和调色板等。GDI对象类在MFC中的层次结构如图8-2所示。代烃肃蚊读露嗽炼捆挟蛇谜捂莽浙眺磅渗妓冬唤矛傅蜕取持岸阉掳根糕浪计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版CObjectCGdiObjectCPenCBrushCFontCBitmapCRgnCPalette形稿粗械水榜磺盟芒筐问痰辆笋卷容衰双芭吻骋邯浑爸撩寞宪聊淆魂欲音计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版MFC的CDC类提供了成员函数SelectObject,用于选择用户自己创建的GDI对象,该函数有多种重载形式,可以选择用户已定制好的画笔、画刷、字体和位图等不同类型的GDI对象。该函数常用的重载形式如下所示:CPen*SelectObject(CPen*pPen);CBrush*SelectObject(CBrush*pBrush);VirtualCFont*SelectObject(CFont*pFont);CBitmap*SelectObject(CBitmap*pBitmap);怕陡湍俩糊头囤辙画俐妓姚冉舰袋女逝器砷学匀屿映赴避苗膨譬毛扇彩缀计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版1.使用GDI对象绘图绘图工具的使用包括创建GDI对象、选择GDI对象、使用GDI对象绘图和使用后释放GDI对象等步骤。(1)定义一个GDI对象(如CPen对象、CBrush对象),然后用相应的函数(如CreatePen()、CreateSolidBrush())创建此GDI对象。但要注意,有些GDI派生类的构造函数允许用户提供足够的信息,从而一步即可完成对象的创建任务,如CPen类、CBrush类。(2)将构造的GDI对象选入当前设备环境中,并将原来的GDI对象保存起来。(3)绘图结束后,恢复当前设备环境中原来的GDI对象。沦崎保耙涣掺纽肚嘲治秒请型姥等拔邻净缮储塞鲁厢攀盏紧孪羞伴种刃框计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版注意:对于显示设备环境来说,在每个消息控制函数的入口处,设备环境都是未被初始化的,当函数退出之后,在该函数内部所进行的任何GDI选择都不再有效,因此,每次都必须从头开始设置设备环境。截六挑线冰已狡赚正泅抄谤嗅厚迷廓秦掖官庭吝岩然桔晤邵酝未切耽慎沸计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版2.库存的GDI对象除了自定义的GDI对象外,Windows还包含了一些预定义的库存GDI对象。由于它们是Windows系统的一部分,因此用户不用删除它们。CDC的成员函数SelectStockObject可以把一个库存对象选入当前设备环境中,并返回原先被选中的对象指针,同时使原先被选中的对象从设备环境中分离出来。砰真烹永河律晃家据齿造帆羞涉裸姥美嘴矩除战九卓冤汾庶延清穷则动以计算机软件工程基础课件,高等教育出版社,第三版计算机软件工程基础课件,高等教育出版社,第三版函数SelectStockObject可选用的库存GDI对象类型可以是下列值之一:BLACK_B

1 / 61
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功