- 2
- 0
- 约6.71千字
- 约 39页
- 2018-08-04 发布于江苏
- 举报
图、字体和位图
第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
您可能关注的文档
最近下载
- 以工代赈40年:演进历程、政策逻辑与未来展望.pdf VIP
- (反光)灯槽(走廊天花)安装施工方案及技术措施.docx VIP
- 地下车库环氧地坪施工安全方案.docx VIP
- 基于人工智能的区域教育质量监测:数据质量控制与评估体系构建教学研究课题报告.docx
- 美国民事没收面临的违反正当程序的抗辩.doc VIP
- 美国民事没收无辜所有者抗辩:历史、现状与启示.doc VIP
- 全国职业大赛(中职)ZZ012食品药品检验赛项赛题库共计10套.docx
- 墙体加固设计与施工方案.docx VIP
- NYT1117-2010 水溶肥料钙、镁、硫、氯含量的测定.pdf VIP
- 1MD-HPV-20150304-01 HPV检测临床关注的问题.ppt VIP
原创力文档

文档评论(0)