如何使在picture控件中画出的线条颜色不受图片底色影响,正常画线的时候当mouse拖拉的线条时,线条颜色会与图片颜色异或而变得一段一种颜色.有没有好的办法可以解决这个问题?

解决方案 »

  1.   

    用line控件代替picturebox的line功能
    当鼠标抬起后在隐藏line控件,picturebox画线
      

  2.   

    最简单的方法就是将Picture1的 DrawMode 属性改为 7Picture1.DrawMode = 7
      

  3.   

    常数 设置值 描述 
    VbBlackness 1 黑色。 
    VbNotMergePen 2 非或笔 - 与设置值 15 相反 (Merge Pen)。 
    VbMaskNotPen 3 与非笔 - 背景色以及画笔反相二者共有颜色的组合。 
    VbNotCopyPen 4 非复制笔 - 设置值 13 (Copy Pen) 的反相 
    VbMaskPenNot 5 与笔非 - 画笔以及显示反相二者共有颜色的组合。 
    VbInvert 6 反转 - 显示颜色的反相 
    VbXorPen 7 异或笔 - 画笔的颜色以及显示颜色的组合,只取其一。 
    VbNotMaskPen 8 非与笔 - 设置值 9 (Mask Pen) 的反相。 
    VbMaskPen 9 与笔 - 画笔和显示二者共有颜色的组合。 
    VbNotXorPen 10 非异或笔 - 方式 7 的反相 (Xor Pen)。  
    VbNop 11 无操作 - 输出保持不变。该设置实际上关闭画图。 
    VbMergeNotPen 12 或非笔 - 显示颜色与画笔颜色反相的组合。 
    VbCopyPen 13 复制笔(缺省值) - 由 ForeColor 属性指定的颜色。 
    VbMergePenNot 14 或笔非 - 画笔颜色与显示颜色的反相的组合。 
    VbMergePen 15 或笔 - 画笔颜色与显示颜色的组合。 
    VbWhiteness 16 白色。 
      

  4.   

    唉,这个论坛最大的缺点就是不能修改自己回复的贴子,不得不继续再回一帖。将 DrawMode 改为7后,也就是楼主要求的异或,这里有个问题,就是画的线不能重复,因为异或方式重复绘图就会使原线段消失了。如有交叉,则交叉的点也会成为picture的背景色。不知楼主是什么意思?异或方式绘制,您绘制的线段确定不会重复?
      

  5.   

    设置DrawMode属性,Picture1.DrawMode = 7