zoukankan      html  css  js  c++  java
  • 如何解决在GDI画图中,多次修改画笔的颜色

    首先创建个画笔对象:

    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函数将其删除。

  • 相关阅读:
    Django 的 CSRF 保护机制
    uni横向滑动
    uni模板
    下载excel文件,链接,通过按钮点击创建a标签实现
    vue去除input输入框空格适用于搜索查询框
    整理个人笔记Linux的一些常用命令
    简单概括一下JAVA中的ANT的配置
    谈谈JavaIO System对IO的三种支持
    JAVA使用类库对数组和各种Collection容器进行排序
    c语言自行设计矩形类构造函数
  • 原文地址:https://www.cnblogs.com/Uthinker/p/5438668.html
Copyright © 2011-2022 走看看