VC++开发GIS系统(21)关于VC++中的CPEN类
在之前的文章VC++开发GIS系统(20)设置点边框颜色中,我使用到了Cpen这个类,这个类在以后也会经常遇到,所以这里做一个简要的介绍,在后来教程中也会继续使用这个类完成绘图工作。
构造函数
CPen(
int nPenStyle,
int nWidth,
COLORREF crColor
);
CPen(
int nPenStyle,
int nWidth,
const LOGBRUSH* pLogBrush,
int nStyleCount = 0,
const DWORD* lpStyle = NULL
);
构造说明
在本教程中没有使用到第2个构造函数,如果对第2个构造函数感兴趣可以自行搜索相关说明。下面对第1个构造函数做一个说明。
- 参数 nPenStyle
PS_SOLID:实线
PS_DOT:点线
PS_DASH:划线
PS_DASHDOT:点划线
PS_DASHDOTDOT:一划两点的点划线
PS_NULL:透明线
PS_INSIDEFRAME:边框内沿线
其中边框内沿线是指整个边框线的实体都紧贴边框内沿,而非PS_INSIDEFRAME的线在边框内侧和外侧的宽度都一样,比如画一个圆,直径为5像素,画圆的线的风格是非内沿的2像素宽的线,则边沿线内外两侧各占1像素宽的边框线,因此总的外径为12像素,但如果是内沿的风格,则变沿线外侧无边框线的像素,而内侧有2像素宽度的边框线,因此外径仍然是10像素;
- 参数 nWidth
宽度由逻辑单位给出,逻辑单位取决于当前的映射模式,其中PS_SOLID、PS_NULL、PS_INSIDEFRAME可以指定任意逻辑宽度,但其余(PS_DASH、PS_DOT、PS_DASHDOT、PS_DASHDOTDOT)必须指定1单位宽,如果指定其它任何值都会在后台自动修正为1逻辑宽度。
- 参数 COLORREF crColor
由RGB宏定义,三个分量分别为红、绿、蓝;
使用方法
既然讲了构造函数,下面介绍一下Cpen的使用方法,参考代码如VC++开发GIS系统(20)设置点边框颜色
CClientDC dc(this);
//画方形的点
CPen pen(0, 1, RGB(0, 255, 0));//创建画笔,实现 宽度1 颜色:Green
CPen *oldPen = dc.SelectObject(&pen);//保存老画笔,并选中当前画笔
dc.Rectangle(CRect(CPoint(point.x - 10, point.y - 10), CPoint(point.x + 10, point.y + 10)));//用新画笔画图
dc.SelectObject(oldPen);//恢复老画笔
pen.DeleteObject();//删除画笔
基本的过程如下:
新建画笔--选中新建的画笔,同时保存老画笔--画图--恢复老画笔--删除新建的画笔。
参考文献
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。