VB6.0如何实现像PS那样的多图层效果,是用多个picture控件叠加,还是在一个picture控件里面多长重画?
VB6.0如何实现像PS那样的多图层效果,是用多个picture控件叠加,还是在一个picture控件里面多长重画?
我能想到的是DX那样的方式。通过控件的刷新来确定是否需要进行绘制。 这个需要用到类或者结构体,在类或者结构体中需要定义一个图层信息,然后再重绘的时候确定是否会绘制出这个图形。
简单讲讲结构体吧
模块代码
程序代码:
Public Type Layer name as String Show as boolean End Type Public Type Circ LayerID as integer ……' 圆形元素的基本参数 End Type Public Type Rect LayerID as integer ……' 圆形元素的基本参数 End Type '其他图形元素的结构体代码 Public Type Drawing Circles() as Circ Rects() as Rect …… '其他图形元素 End Type
窗口代码
程序代码:
Sub Form_load() Dim MyDrawing as Drawing ' 定义绘图中各种元素的代码,包括各元素所在的图层 Dim Layers() as Layer '定义图层信息,包括是否显示 End Sub Sub RefreshDrwaing() picturebox1.cls 清屏 For i= lbound(MyDrawing.Circles) to Ubound(MyDrawing.Circles) '遍历并绘制所有的圆 L_ID =MyDrawing.Circles(i).LayerID if Layers(L_ID).Show=True then ’绘制图形代码 else ’不绘制 End if nexi i '其他图形类似。 End Sub '剩下的就是在Timer或者复选框等控件事件中调用RefreshDrwaing