在画矩形前把图象保存,画完后再重新装入这个方法
这是最好的方法!!!
====================================================================
还有一种方法
把绘制方法设为异或(也叫位加:Xor):DrawMode设为VbXorPen
再绘制一次同样的图像会恢复(最好用白色,这样效果比较明显)
DrawMode 属性
返回或设置一个值,以决定图形方法的输出外观或者 Shape 及 Line 控件的外观。语法object.DrawMode [= number]DrawMode 属性语法包含下面部分:部分 描述
object 对象表达式,其值是“应用于”列表中的一个对象。
Number 整型值,指定外观,“设置值”中有详细描述。
设置值number 的设置值为:常数 设置值 描述
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 白色。
说明当用 Shape 或 Line 控件,或者用图形方法画图时,使用这个属性产生可视效果。Visual Basic 将绘图模式的每一个像素与现存背景色中相应的像素做比较,然后进行逐位比较操作。例如,设置值 7(异或笔)用 Xor 操作符将绘图模式像素和背景像素组合起来。DrawMode 设置值的真正效果,取决于运行时所画线的颜色与屏幕已存在颜色的合成。对于设置值 1,6,7,11,13 和 16 可以最可靠地预知该属性的输出结果。DrawMode 属性示例
这个例子允许通过拖动鼠标在窗体上画图。每单击一次鼠标为 DrawMode 属性设置一个不同的值。要试用此例,先把代码粘贴到窗体的声明部分,然后按 F5 键,并单击窗体。Private Sub Form_Load
DrawWidth = 10 ' 设置 DrawWidth.
End Sub
Private Sub Form_Click ()
Static M As Integer ' 当前 DrawMode 的设置值.
ForeColor = QBColor(Int(Rnd * 15)) ' 选择一种颜色.
M = ((M + 1) Mod 16) + 1 ' 使 DrawMode 小于或等于 16.
DrawMode = M ' 设置 DrawMode.
End Sub
Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button Then ' 当按钮被按下时,
PSet (X, Y) ' 画一个大点.
End If
End Sub
这是最好的方法!!!
====================================================================
还有一种方法
把绘制方法设为异或(也叫位加:Xor):DrawMode设为VbXorPen
再绘制一次同样的图像会恢复(最好用白色,这样效果比较明显)
DrawMode 属性
返回或设置一个值,以决定图形方法的输出外观或者 Shape 及 Line 控件的外观。语法object.DrawMode [= number]DrawMode 属性语法包含下面部分:部分 描述
object 对象表达式,其值是“应用于”列表中的一个对象。
Number 整型值,指定外观,“设置值”中有详细描述。
设置值number 的设置值为:常数 设置值 描述
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 白色。
说明当用 Shape 或 Line 控件,或者用图形方法画图时,使用这个属性产生可视效果。Visual Basic 将绘图模式的每一个像素与现存背景色中相应的像素做比较,然后进行逐位比较操作。例如,设置值 7(异或笔)用 Xor 操作符将绘图模式像素和背景像素组合起来。DrawMode 设置值的真正效果,取决于运行时所画线的颜色与屏幕已存在颜色的合成。对于设置值 1,6,7,11,13 和 16 可以最可靠地预知该属性的输出结果。DrawMode 属性示例
这个例子允许通过拖动鼠标在窗体上画图。每单击一次鼠标为 DrawMode 属性设置一个不同的值。要试用此例,先把代码粘贴到窗体的声明部分,然后按 F5 键,并单击窗体。Private Sub Form_Load
DrawWidth = 10 ' 设置 DrawWidth.
End Sub
Private Sub Form_Click ()
Static M As Integer ' 当前 DrawMode 的设置值.
ForeColor = QBColor(Int(Rnd * 15)) ' 选择一种颜色.
M = ((M + 1) Mod 16) + 1 ' 使 DrawMode 小于或等于 16.
DrawMode = M ' 设置 DrawMode.
End Sub
Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button Then ' 当按钮被按下时,
PSet (X, Y) ' 画一个大点.
End If
End Sub
解决方案 »
- [急]生僻字的区位码
- 这个设置托盘图标的函数为什么总是说类型不匹配?
- vb监视文件,以下代码能运行,出现一个文件,能报出,若有两个文件以上, 只能报出其中一个,我想全部报出
- MDI窗体 在窗体unload 事件中 写set frm(窗体名)=nothing 报错 为什么程序退出了进程还在?
- 有会installshield的大侠吗?
- 40分问两个小问题,很简单的(入门级的),高手来拿分。在线等。
- 哪里有关于WINSOCK的详细资料??
- 关於特殊文件夹Temporary Internet Files过滤文件
- 如何从一个过程跳转到另一个过程的某一段代码?
- 我想和真正的VB高手交流一下!是真正的!最好是写过组件的!
- 问几个问题,先来先得分(五)。
- 请问为什么有的Code在98下编译会内存溢出,而同样的Code在2000下编译可以通过,如何解决内存溢出??
Picture1.Cls
就可以了。
你如果将picture1的**属性设为true我劝你用保存修改前的图片,需要时在调入!
你如执迷不悟的话就请用 zyl910(910:分儿,我来了!) 的方法!