如何解决在GDI画图中,多次修改画笔的颜色

首先创建个画笔对象:

CPen gPen;gPen.CreatePen(PS_SOLID, 1, RGB(120,120,130));//一定灰度的画笔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函数将其删除。

时间: 2024-08-29 15:49:53

如何解决在GDI画图中,多次修改画笔的颜色的相关文章

vue组件中的样式属性:scoped,解决在父组件中无法修改子组件样式问题

Scoped CSS规范是Web组件产生不污染其他组件,也不被其他组件污染的CSS规范. vue组件中的style标签标有scoped属性时表明style里的css样式只适用于当前组件元素,它是通过使用PostCSS来改变以下内容实现的: <style scoped> .example { color: red; } </style> <template> <div class="example">hi</div> </

修改vim字体颜色

通过putty或者securecrt连到linux服务器,使用vi编辑*.php 或*.c文件时, 蓝色的注释很淡,看不清,看起来很费眼 效果如下 我本身有习惯于默认配色,不想修改配色方案,只想把看不清蓝色的注释换掉,修改成目录的蓝色 翻了翻相关资料,大部分都是修改配色方案,最后发现可以通过hi命令来修改注释的颜色. hi指令使用方法 设置关键字为蓝色非粗体 :hi Identifier ctermfg =blue cterm =none (bold 就设置成粗体) 那我们的问题就可以通过添加一

在使用shape的同时,用代码修改shape的颜色属性

Android里面经常会使用shape来定制一些View的背景 可以修改View的背景颜色,形状等属性 一般情况下,shape都是在xml文件里面写死了,今天遇到一个需求,View的形状是圆角的,但是颜色是在代码里面设置的 最开始的思路是先在代码里给View设置颜色,再在shape里面设置solid属性为透明色 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="htt

Android Studio -修改LogCat的颜色

Android Studio -修改LogCat的颜色 author:Kang,Leo weibo:http://weibo.com/kangyi 效果图 设置 Preference->Editor->Colors &n Fonts->Android Logcat 在后面将Use Inberited attributes 去掉勾选 再将 Foreground 前的复选框选上,就可以双击后面的框框去选择颜色了 Apply–>OK  推荐色值 Log级别 色值 VERBOSE

修改eclipse背景颜色

修改eclipse的背景色 专注java已6年,欢迎加入java核心技术QQ群:135138817,每周五晚有群主进行技术讲座. eclipse操作界面默认颜色为白色.对于我们长期使用电脑编程的人来说,白色很刺激我们的眼睛,所以我经常会改变workspace的背景色,使眼睛舒服一些. 设置方法如下: 1.打开window->Preference,弹出Preference面板 2.展开General标签,选中Editors选项,展开. 3.选中 Test Editors,右边出现Test Edit

ubuntu修改终端背景颜色

1.总流程:终端编辑->配置文件->新建->颜色 2.过程图: 终端编辑选项->配置文件 新建 修改颜色 OK! ubuntu修改终端背景颜色

Revit 二次开发 修改对象的颜色

//修改对象颜色 [TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)] public class ChangeColor : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements) { ChangeElementColor(comm

修改 UITextfield placeholder 颜色

_password = [[UITextField alloc]init]; _password.font = k18Font; _password.attributedPlaceholder = [[NSAttributedString alloc]initWithString:@" 密码" attributes:@{NSForegroundColorAttributeName:kBlackColor}]; ***************** 而且 UITextField 比 UIL

如何修改终端用户名颜色修改为红色

如何修改终端用户名颜色修改为红色\[\033[1;31m\] tipsbychsry:由于输入特定符号会导致乱码,只能截图显示!!!!!!!! 整个操作代码流程图片和最终显示结果 输入>echo $PS1 显示: 在个人用户文件夹输入 输入gedit ~/.bashrc 修改这几行代码 if [ "$color_prompt" = yes ]; then #PS1=.... else #PS1==... fi unset color_prompt force_color_prom