- 1、本文档共88页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5、 使用库存GDI对象 在Windows中包含了一些库存的GDI对象,这些库存对象是通过一些预定义的宏来表示的,用于绘制屏幕的常用对象,包括库存画笔、刷子、字体等,因此用户在使用以后无需删除它们。MFC库函数SlectStockObject()可以把一个库存对象选进设备环境中,并返回原先被选中的对象的指针,同时使该对象被分离出来。该函数的声明及其参数设置如下: virtual CGdiObject* SelectStockObject(int nIndex); 如果函数调用成功,则返回一个被代替的CGdiObject对象的指针,而实际指向的是CPen、CBrush、CFont等类的实例。如果调用不成功,则返回值为NULL。参数nIndex用来指定想要得到的库存对象的种类,它的取值可参见VC++参考资料。 总之,设备环境(DC)和图形设备接口(GDI)是实现计算机绘图的两个重要的组成部分,DC主要负责设置绘图的状态和方式,而GDI则主要负责设置所用的绘图工具。 2.6.2 OnDraw成员函数 VC++所编写的Windows图形应用程序通常是在视图类中通过OnDraw函数中添加绘图代码完成图形的生成。OnDraw函数是CView类中的一个虚拟成员函数,每当窗口需重绘时应用程序框架会调用它。 函数原型如下:virtual void OnDraw(CDC* pDC);? 下面的OnDraw函数是由AppWizard直接生成的: void CMyProjectView::OnDraw(CDC* pDC) { CMyProjectDoc* pDoc = GetDocument();// 获取当前文档指针 ASSERT_VALID(pDoc);// 检查指针是否为空 // TODO: add draw code for native data here //下面可添加自己的程序代码 } 2.6.3 GDI对象类 GDI的基本绘图对象类有: CBitmap类、CBrush类、CFont类、CPen类、CRgn类和CPalette类. 它们都是CGdi0bject类的派生类。 1、CPen类 (1) CPen类构造函数 CPen的构造函数可创建绘图对象。该类有3个构造函数: CPen(); CPen(int nPenStyle,int nWidth,COLORREF crColor); throw(CResourceException); CPen(int nPenStyle,int mWidth,const LOGVRUSH* pLogBrush,int nStyleCount=0,const DWORD* lpStyle=NULL); throw(CResourceException); 该类封装了Windows图形设备接口画笔,包含在“afxwin.h”头文件中。画笔是一种用来画线及绘制有形边框的工具,用户可以指定它的颜色及宽度,并且可以指定它画实线、点线或虚线。运用缺省画笔画的是一个像素宽的黑色实线。 (2) CPen类初始化成员函数 ① 调用CreatePen()成员函数 CreatePen()成员函数通过指定线型、线宽和颜色等画笔属性参数直接创建一个具有特定线型、线宽和颜色的画笔对象,其原型声明如下: BOOL CreatePen(int nPenStyle,int nWidth,COLORREF crColor); BOOL CreatePen(int nPenStyle,int nWidth,const LOGBRUSH* pLogBrush,int nStyleCount=0,const DWORD* lpStyle=NULL); ② 调用CreatePenIndirect()成员函数 CreatePenIndirect()成员函数创建画笔对象,其属性并不是直接通过函数参数的形式给出的,而是通过LOGPEN结构的成员变量间接地给出。为了创建一个具有特定属性的画笔对象主要工作是重置LOGPEN结构的成员变量,该函数的原型声明如下; BOOL CreatePenIndirect(LPLOGPEN lpLogPen); 参数lpLogPen是指向LOGPEN结构的指针,在该结构中有3个成员变量,分别用于指定画笔的风格、宽度和颜色。LOGPEN结构的具体定义如下: typedef struct tagLOGPEN{/*lgpn*/ UNIT lopnStyle; POINT lopnWidth; COLORREF lopnColor; }LOGPEN; 2、 CBrush类 该类封装了Windows的GDI刷子,包含
文档评论(0)