急!求教个关于画图板 撤销 的问题
参考了下别人的自己组装了一下,是每次点击以后清屏 不是撤销。开始我把picture6(0)这个数组弄成不可见的。后来为了调试,调成可见 发现这个控件并不能实现Load Picture6(bk)
Picture6(bk).Height = Picture1.Height
Picture6(bk).Width = Picture1.Width
Picture6(bk).Picture = picture1.image
Picture6(bk).AutoRedraw = True '''''撤消
这段操作,不知道为什么,求解答 奉上程序
Dim i As Integer '用于撤销
Dim bk As Integer '''''撤消
Public oldx, oldy As Long
Private Sub Form_Load()
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If bk > 100 Then '''''撤消100次 100次以后撤销以前保存的
bk = 0
For i = 1 To 100
Unload Picture6(i)
Next i
End If
bk = bk + 1
Load Picture6(bk)‘每点击一次picture1加载一个picture6(bk)
Picture6(bk).Height = Picture1.Height
Picture6(bk).Width = Picture1.Width
Picture6(bk).Picture = picture1.image'每次操作存入picture6(bk)中
Picture6(bk).AutoRedraw = True '''''撤消
oldx = X
oldy = Y
Picture1.PSet (oldx, oldy)
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then Picture1.Line -(X, Y)
End Sub
Private Sub Command1_Click()
If bk >= 1 Then
Picture1.Picture = Picture6(bk).Image
Unload Picture6(bk)
bk = bk - 1
End If
End Sub
其中控件有picture1 用于画画
picture6(0) 这个控件我只修改了index为0不知道要创建一个控件组还要不要其他的设置
command1 用于撤销
然后我出现的问题是”貌似“这样并不加载控件组 每次点击command1以后就清屏了 并不是撤销成上一步。这样做的思路正确吗?如果正确需要哪些改动可以达到目的呢?谢谢大侠啦!
期末考试的大作业 快考试了 谢谢大家啊!我的分不多刚注册的 --------------------编程问答-------------------- Picture6(bk)大约是用来保存以前的操作的...
比如:在操作picture1之前有Picture6(bk).Picture = picture1.image'
就是把要操作之前的图形保存在一个Picture6(bk)中
如果点击的是恢复,就给picture1从新copy一次以前的:
Picture1.Picture = Picture6(bk).Image
程序肯定会维护bk这个变量,这个变量的意思就是现在的操作了.
这样的思路是正确可行的,就是开销有些太大了,101个picturebox啊.
另外你保存图形到picture6是在picture1的mousemove事件,希望你能在这个事件下断点,确定这个事件不会没有画点而产生了保存操作,因为保存100个就会for...unload...next操作,就是清理了保存的picture6控件.
实际上鼠标随便移动100个坐标,你就清理掉保存的picture6了.正确的保存应该在mousedown或者mouseup事件吧,你觉得如何?
如果维护一个字符串类型数组(或者自定义结构,因为你不过是记录画线的,线也不过4个参数)
数组里面保存每次画的线的4个参数,每画一个线,就存一次,每撤销一次,就从数组末尾去掉一个数据,并且在输出上重画整个数组
这样操作方便些,可撤销的数量可以非常多,就是撤销会慢一些,因为撤销要重画.. --------------------编程问答-------------------- 哎呀,被丢了板砖了呀.
也没看见有谁回复更好的东西呀.
难道我遇到了传说中的刺客了?没事躲人群里面扔砖头,哦吼吼吼
补充:VB , 控件