博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何解决在GDI画图中,多次修改画笔的颜色
阅读量:5121 次
发布时间:2019-06-13

本文共 960 字,大约阅读时间需要 3 分钟。

首先创建个画笔对象:

CPen gPen;

gPen.CreatePen(PS_SOLID, 1, RGB(120,120,130));//一定灰度的画笔〈/br〉
CPen* pOldPen = pDC->SelectObject(&gPen);

由于画笔一旦创建后就无法修改。所以要修改画笔的颜色要用DeleteObject函数将其删除​,之后再创建新的画笔。

下面是修改为红色的画笔:

gPen.DeleteObject();

gPen.CreatePen(PS_SOLID,1, RGB(255, 0, 0));
pOldPen = pDC->SelectObject(&gPen);

上面的最后一句一定要加上。不然新创建的画笔颜色不会改变。

这是在单文档程序中写的,在之前的 pDC的由来。如下:

CHelloWordDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);
if (!pDoc)
  return;
CDC* pDC = GetDC();

分析CreatePen函数

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

​ 参数:

nPenStyle:--- Long,指定画笔样式,可以是下述常数之一

PS_SOLID :画笔画出的是实线

PS_DASH :画笔画出的是虚线(nWidth必须不大于1)

PS_DOT   :画笔画出的是点线(nWidth必须不大于1)

PS_DASHDOT 画笔画出的是点划线(nWidth必须不大于1)

PS_DASHDOTDOT 画笔画出的是点-点-划线(nWidth必须不大于1)

PS_NULL 画笔不能画图

PS_INSIDEFRAME 由椭圆、矩形、圆角矩形、饼图以及弦等生成的封闭对象框时,画线宽度向内扩展。如指定的准确RGB颜色不存在,就进行抖动处理

nWidth --- Long,以逻辑单位表示的画笔的宽度

crColor --- Long,画笔的RGB颜色

:画笔一旦创建后不再需要画笔,记得用DeleteObject函数将其删除。

转载于:https://www.cnblogs.com/Uthinker/p/5438668.html

你可能感兴趣的文章
【架构】Linux的架构(architecture)
查看>>
ASM 图解
查看>>
C与汇编混合编程
查看>>
cs20_6-1
查看>>
keras_7_评估标准 Metrics
查看>>
logging模块
查看>>
MATLAB图像处理函数汇总(一)
查看>>
linux 安装apache
查看>>
JavaMail
查看>>
如何为你的响应式设计提速
查看>>
PPT是天使还是魔鬼?
查看>>
STM32f0芯片ADC连续读取值相同
查看>>
React Native的ListView的布局使用
查看>>
LINQ Distinct()
查看>>
quartz多个scheduler实现
查看>>
盒子之间的关系
查看>>
NOIP2015&2016普及组解题报告
查看>>
过度拟合的问题
查看>>
jar包导入导出
查看>>
C/C++内存泄漏及检测
查看>>