[GDI绘图]画笔CPen

您所在的位置:网站首页 GDI参数 [GDI绘图]画笔CPen

[GDI绘图]画笔CPen

2024-07-15 20:48| 来源: 网络整理| 查看: 265

CPen类 CPen画笔是一种用来画线及绘制有形边框的工具,用户可以指定它的颜色及厚度,并且可以指定它画实线、点线或虚线。

CPen类,该类封装了Windows图形设备接口(GDI)画笔,主要通过构造函数来创建绘图对象。

函数说明

CPen类的构造函数有3个,分别如下:

// Create methods HPEN CreatePen(int nPenStyle, int nWidth, COLORREF crColor) HPEN CreatePen(int nPenStyle, int nWidth, const LOGBRUSH* pLogBrush, int nStyleCount = 0, const DWORD* lpStyle = NULL) HPEN CreatePenIndirect(LPLOGPEN lpLogPen)

HPEN CreatePen(int nPenStyle, int nWidth, COLORREF crColor)

创建画笔函数带有3个参数,nPenStyle设置线形,nWidth设置线宽,crColor设置线的颜色

画笔线型参数说明 参数注释PS_SOLID实线画笔PS_DASH虚线画笔,只有当画笔宽度小于等于1个设备单位时才有效PS_DOT点画笔,只有当画笔宽度小于等于1个设备单位时才有效PS_DASHDOT虚线点画笔,只有当画笔宽度小于等于1个设备单位时才有效PS_DASHDOTDOT创建一个双点线画笔,只有当画笔宽度小于等于1个设备单位时才有效PS_NULL空线画笔PS_INSIDEFRAME创建一个内框线画笔,该画笔可以在Windows GDI输出函数定义的矩形边界所生成的封闭状的边框内绘制直线 // 创建实线画笔 CPen solidPen; solidPen.CreatePen(PS_SOLID, 1, RGB(0x99, 0x99, 0x99)); // 绘制一条直线 HGDIOBJ hOld = ::SelectObject(hDC, (HGDIOBJ)solidPen); ::MoveToEx(hDC, 0, 0, nullptr); ::LineTo(hDC, 100, 100); ::SelectObject(hDC, hOld); // 创建虚线画笔 CPen dotPen; dotPen.CreatePen(PS_DOT, 1, RGB(0xCC, 0xCC, 0xCC)); dc.SelectPen(dotPen); // ToDo: 绘制形状

HPEN CreatePen(int nPenStyle, int nWidth, const LOGBRUSH* pLogBrush, int nStyleCount = 0, const DWORD* lpStyle = NULL)

创建画笔函数带有5个参数,nPenStyle设置线形,nWidth设置线宽,pLogBrush设置画刷,nStyleCount指定lpStyle矩阵的长度(如果参数nPenStyle的值不是PS_USRSTYLE,则该参数值必须是0),lpStyle设置自定义风格直线段的长度

// 设置一个宽度为2,实线和白线分别是32和8,的虚线矩形画刷 LOGBRUSH logBrush; logBrush.lbStyle = BS_SOLID; // 线的类型 logBrush.lbColor = RGB(0xCC, 0xCC, 0xCC); // 线的颜色 DWORD lpStyle[] = { 32, 8, 0}; // 虚线和白线比例,也可以多设置几个 CPen pen; pen.CreatePen(PS_USERSTYLE | PS_GEOMETRIC | PS_ENDCAP_SQUARE, 2, &logBrush, 2, lpStyle); // 绘制一条宽度为2的虚线 HGDIOBJ hOld = ::SelectObject(hDC, (HGDIOBJ)pen); ::MoveToEx(hDC, 0, 0, nullptr); ::LineTo(hDC, 100, 100); ::SelectObject(hDC, hOld);



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3