第8章绘图、字体和位图-Read.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章绘图、字体和位图-Read

第8章 绘图、字体和位图 8.1 概述 8.2 简单图形的绘制 8.3 字体与文字处理 8.4 位图、图标与光标 8.1 概述 设备环境类(CDC) 坐标映射 图形设备接口(GDI) 简单数据类CPoint, CSize, CRect 一、设备环境类(CDC) CDC:MFC设备环境类的基类,利用它可以访问整个显示设备和非显示设备。 基类CDC还派生了CPaintDC,CClientDC,CWindowDC,CMetaFileDC类。除了CMetaFileDC之外,其余的派生类均只有构造函数和析构函数有所不同。 CPaintDC:为窗口的OnPaint函数所使用的设备环境类。如果需要重新编写视图的OnPaint函数,就需要使用CPaintDC类。该类的构造函数会自动调用BeginPaint函数,析构函数会自动调用EndPaint函数。 CClientDC:窗口客户区(不包括边框、标题栏和菜单栏)的设备环境类,一般用于实时映射鼠标事件,如绘制等。 CWindowDC:整个应用程序窗口的设备环境,既包括客户区、又包括非客户区(包括边框、标题栏和菜单栏等)。 CMetaFileDC:表示Windows图元文件的设备环境类。Windows图元文件包含了一系列GDI绘图命令,可以用这些命令来重新建立相应的映像。 二、坐标映射 坐标系统 映射模式 坐标系统 Windows应用程序可以使用两类坐标:设备坐标和逻辑坐标 设备坐标使用像素作为度量单位,设备坐标又可分为屏幕坐标、窗口坐标和客户区坐标三种 其他的坐标系统都是逻辑坐标系统。 其中映射模式规定了GDI函数中定义的逻辑单位如何转化为设备单位。在画一个对象以前,Windows操作系统会把这些逻辑单位翻译成相应的设备坐标系统中的单位。 映射模式 相关函数 设置当前的映射模式:可以调用CDC的成员函数SetMapMode来完成,其函数原型为: Virtual int SetMapMode(int nMapMode) 定义窗口区域:定义窗口的X范围和Y范围,可以使用CDC的成员函数SetWindowExt来完成。注意,只有当映射模式为MM_ANISOTROPIC或MM_ISOTROPIC时该函数才有效。其函数原型为: virtual CSize SetWindowExt(int cx, int cy); virtual CSize SetWindowExt(SIZE size); 定义视口:视口是接收输出的窗口区域。可以使用CDC的成员函数SetViewportExt来定义视口范围。注意,只有当映射模式为MM_ANISOTROPIC或MM_ISOTROPIC时该函数才有效。其函数原型为: virtual CSize SetViewportExt(int cx, int cy); virtual CSize SetViewportExt(SIZE size); 其中,参数cx和cy或者size用于指定视口的x,y范围。 设置视口原点:缺省时,视口原点是窗口原点,坐标为(0,0),可调用CDC的成员函数SetViewportOrg()来设置视口原点,其函数原型为: virtual CSize SetViewportOrg(int x, int y); virtual CSize SetViewportOrg(POINT point); 其中,参数x和y或者point用于指定新的视口原点。 三、图形设备接口(GDI) GDI使用几种对象来影响绘图效果,这几种对象包括画笔、画刷、字体、位图、调色板和区域。 MFC提供了从CGdiObject类派生的几个类来管理这些对象,上述几种对象分别对应的类是:CPen、CBrush、CFont、CBitmap、CPalette、CRgn 使用GDI对象 在选择GDI对象进行绘图时,往往遵循下列步骤: 在堆栈中定义一个GDI对象(如Cpen,CBrush对象),然后用相应的函数(如CreatePen,CreateSolidBrush)创建此GDI对象。 将构造的GDI对象选入当前设备环境中,但不要忘记将原来的GDI对象保存起来。 绘图结束后,恢复当前设备环境中原来的GDI对象。 由于GDI对象是在堆栈中创建,当程序结束后,框架会自动删除程序创建的GDI对象。 库存的GDI对象 CDC的成员函数SelectStockObject可以把一个库存对象选入当前设备环境中,并返回原先被选中的对象指针,同时使原先被选中的对象从设备环境中分离出来。 函数SelectStockObject可选用的库存GDI对象类型: BLACK_BRUSH BLACK_PEN DKGRAY_BRUSH NULL_PEN GRAY_BRUSH WHITE_PEN HOLLOW_BRUSH DEV

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档