[GDI绘图]画笔CPen |
您所在的位置:网站首页 › GDI参数 › [GDI绘图]画笔CPen |
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 |