82绘图设备类 8.2.1cGdi0 bject类 CGdiobject类派生于 COb ject类,它是CGdi0 bject、CPen、 CBrush、 Cfont和 CBitmap等的基类。用户不能直接生成一个CGdi0 b ject类, 而必须在它的某种设备继承类中生成一个CGd0 bject类的派生类。 8.2.2CPen类 CPen类是 CGdiobject类的一个派生类,它封装了 Windows图形设备接 口(GDI)中有关画笔的操作。CPen类的定义如下: class CPen: public cGdiobject DECLARE DYNAMIC (CPen) public: U回
返回 11 8.2.1 CGdiObject类 CGdiObject类派生于CObject类,它是CGdiObject、CPen、CBrush、 Cfont和CBitmap等的基类。用户不能直接生成一个CGdiObject类, 而必须在它的某种设备继承类中生成一个CGdiObject类的派生类。 8.2.2 CPen类 CPen类是CGdiObject类的一个派生类,它封装了Windows图形设备接 口(GDI)中有关画笔的操作。CPen类的定义如下: class CPen: public CGdiObject { DECLARE_DYNAMIC(CPen) public: 8.2 绘图设备类
82绘图设备类 static CPen* PASCAL FromHandle(hen hen) //构造函数 CPen() CPen (int nPenStyle, int nWidth, CoLORREF crColor) #ifndef mac CPen(int nPen Style, int nWidth, const LOGBRUSH** pLogBrush, int nStyleCount=0, const DWORd lpStyle=NULL) #endif BOOL CreatePen (int nPenStyle, int nWidth, COLORREF crColor) #ifndef MAC BOOL CreatePen (int nPenStyle, int nWidth, const LOGBRUSH* pLogBrush, int nStyleCount=0, const DWORd lpStyle=NULL) #endif BOOL CreatePen Indirect(LPLOGPEN lpLogPen) //其他部分省略 U回
返回 12 static CPen* PASCAL FromHandle(HPEN hpen); // 构造函数 CPen( ); CPen(int nPenStyle, int nWidth,COLORREF crColor); #ifndef_MAC CPen(int nPenStyle, int nWidth, const LOGBRUSH * pLogBrush,int nStyleCount=0, const DWORD * lpStyle=NULL); #endif BOOL CreatePen(int nPenStyle, int nWidth, COLORREF crColor); #ifndef_MAC BOOL CreatePen(int nPenStyle, int nWidth, const LOGBRUSH * pLogBrush, int nStyleCount=0, const DWORD * lpStyle=NULL); #endif BOOL CreatePenIndirect(LPLOGPEN lpLogPen); //其他部分省略 }; 8.2 绘图设备类
82绘图设备类 8.2.2.1创建CPen对象 创建一个CPen对象可以有以下几种方法 (1)定义一个CPen对象,用其成员函数 CreatePen或 CreatePenlndirect对其进行初始化。如: CPen pen Pen CreatePen(PS SOLID, 1, RGB(255, 0, 0)) (2)定义一个CPen对象,并一次性地初始化它的所有参数。如: CPen pen(PS solid, 1, rGb( 255, 0, RGB (255, 0, 0)) (3)动态地创建一个CPen对象。如: CPen pen Pen=new CPen(PS SOLID, 1, RGB(255, 0, 0)) 在一个函数中多次创建一个CPen对象时可以采用这种方法。应用 这种方法时,特别注意操作完毕后要删除分配的CPen对象,即: delete pen; U回
返回 13 8.2.2.1 创建CPen对象 创建一个CPen对象可以有以下几种方法: ( 1 ) 定 义 一 个 CPen 对 象 , 用其成员函数 CreatePen 或 CreatePenIndirect对其进行初始化。如: CPen pen; Pen.CreatePen(PS_SOLID,1,RGB(255,0,0)); (2)定义一个CPen对象,并一次性地初始化它的所有参数。如: CPen pen(PS_SOLID,1,RGB(255,0,RGB(255,0,0)); (3)动态地创建一个CPen对象。如: CPen *pen; Pen=new CPen(PS_SOLID,1,RGB(255,0,0)); 在一个函数中多次创建一个CPen对象时可以采用这种方法。应用 这种方法时,特别注意操作完毕后要删除分配的CPen对象,即: delete pen; 8.2 绘图设备类
82绘图设备类 参数 nPenStyle用于设置画笔画线的线型其取值如下表: 线型 风格 PS SOLID 创建一个实线画笔 PS DASH 创建一个虚线画笔 PS DOT 创建一个点线画笔 PS DASHDOT 创建一个虚线和点线交替的画笔 PS DASHDOTDOT 创建一个虚线和双点线交替的画笔 PS NULL 创建一个空的画笔 PS INSIDEFRAME 创建一个在封闭矩形框中使用的画笔 U回
返回 14 参数nPenStyle用于设置画笔画线的线型其取值如下表: 线 型 风 格 PS_SOLID 创建一个实线画笔 PS_DASH 创建一个虚线画笔 PS_DOT 创建一个点线画笔 PS_DASHDOT 创建一个虚线和点线交替的画笔 PS_DASHDOTDOT 创建一个虚线和双点线交替的画笔 PS_NULL 创建一个空的画笔 PS_INSIDEFRAME 创建一个在封闭矩形框中使用的画笔 8.2 绘图设备类
82绘图设备类 注意:线型 PS DASH、 PS DOT、 PS DASHDOT和 PS DASHDOTDOT只有在画笔宽度为1个逻辑单位时才有 效 参数 nWidth:设置以逻辑单位衡量的线宽,如果 nWidth为0,则设备自动将画笔设置为一个像素宽,而 不管当前的映射方式 参数 crColor:设置画笔的颜色,其颜色通过RGB宏来确 定: COLORREF RGB(cRed, cGreen, CBlue 参数cRed、 gReen、 BLue分别指定红、绿、蓝3色的相 对亮度,每个参数均可以被赋予0到255之间的值。 U回
返回 15 注意:线型 PS_DASH 、 PS_DOT 、 PS_DASHDOT 和 PS_DASHDOTDOT只有在画笔宽度为1个逻辑单位时才有 效。 参数nWidth :设置以逻辑单位衡量的线宽 , 如 果 nWidth为0,则设备自动将画笔设置为一个像素宽,而 不管当前的映射方式。 参数crColor:设置画笔的颜色,其颜色通过RGB宏来确 定: COLORREF RGB(cRed,cGreen,CBlue); 参数cRed、cGreen、CBlue分别指定红、绿、蓝3色的相 对亮度,每个参数均可以被赋予0到255之间的值。 8.2 绘图设备类