阅读:4157回复:15
我们经常见的编辑菜单中"撤消"与"恢复"是如何工作的?如题所说.小弟现在做一个鼠标操作的东东.要实现撤消与恢复.不知从何下手.望各位高人给个思路.对象是C#与MO2.3下的加点,移点或删点等操作.谢谢! |
|
1楼#
发布于:2004-08-13 08:30
得到很大的启发,多谢GIS.
|
|
2楼#
发布于:2004-08-12 12:37
|
||||
|
3楼#
发布于:2004-08-12 12:25
![]() ![]() |
|
|
4楼#
发布于:2004-08-12 11:32
有点思路,谢谢
|
|
5楼#
发布于:2004-08-09 15:26
不写代码好象是不行的,需要定义很多变量来记录操作次数和状态等 Function Redo(map As MapObjects2.map, times As Long) If undoNow >= undoTimes Then MsgBox "Too big" ElseIf undoNow < 0 Then MsgBox "Less than zero" Else Select Case undoType(undoNow) Case utMovePoint URMovePoint map Case utMovePoints URMovePoints map Case utAddPoint URAddPoint map Case utAddShape URAddShape map Case utLineDelPoint URLineDelPoint map Case utPolygonDelPoint URPolygonDelPoint map Case utAddLine URAddLine map Case utMoveLinePoint URMoveLinePoint map Case utMovePolygonPoint URMovePolygonPoint map Case utMoveLine URMoveLine map Case utMovePolygon URMovePolygon map Case utDelShape URDelShape map Case utZoom URZoom map Case utChangeShape URChangeShape map Case Else End Select End If End Function |
|
|
6楼#
发布于:2004-08-09 14:45
版主是论坛上屈指可数的好版主之列的版主.能讲一下大概思路吗?你的属标操作的信息是如何记录的?如果撤消以后又后悔了或者又后悔了咋办呀?如果我也写这么多代码的话,头儿早把我扔垃圾篓了.版主救我! ![]() |
|
7楼#
发布于:2004-08-09 09:21
程序很多,点线面的redo和undo都要写,这里贴上两个函数看看先 '添加线 Function UAddLine(map As MapObjects2.map, layerNum As Long, Line As MapObjects2.Line) On Error GoTo exit1 Dim lineNew As New MapObjects2.Line Set m_map = map Dim recs As MapObjects2.Recordset Set recs = map.Layers(layerNum).Records CopyLine lineNew, Line pushTypeAStep utAddLine pushInt layerNum pushObject lineNew pushEnd recs.Edit recs.AddNew Set recs.Fields("Shape").Value = lineNew recs.Update recs.StopEditing Refresh map Set lineNew = Nothing exit1: End Function Private Function URAddLine(map As MapObjects2.map) 'redo On Error GoTo exit1 Dim typea, layerNum As Long Dim Line As MapObjects2.Line typea = pipType layerNum = pipInt Set Line = pipObject pipEnd Dim recs As MapObjects2.Recordset Set recs = map.Layers(layerNum).Records recs.Edit recs.AddNew Set recs.Fields("Shape").Value = Line recs.Update recs.StopEditing Refresh map exit1: End Function |
|
|
8楼#
发布于:2004-08-09 09:14
多谢!急等!
|
|
9楼#
发布于:2004-08-06 08:25
谢谢GIS! |
|
|