| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1771 人关注过本帖, 1 人收藏
标题:[求助]在VB6中如何撤消(undo)上一步操作
取消只看楼主 加入收藏
cnliang
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2005-4-1
收藏(1)
 问题点数:0 回复次数:3 
[求助]在VB6中如何撤消(undo)上一步操作
在VB.NET中有UNDO属性,要撤消上一步操作直接myControl.Undo就行了,但vb6.0中好像没有undo属性,请问如果要返回到操作的上一个状态应如何操作? 下面是网络上一篇关于如何undo的文章的节选,但我按它的方法去做却没达到相应的功能,不知问题出在哪里?请前辈们指点! 文章如下: 由于Undo功能是属于文本框控件,你所需要的是向控件发送一个“undo youself”的消息。这一过程可以使用API函数SendMessage来实现。这一函数的声明为:

Declare Function SendMessage Lib "user32" Alias _ "SendMessageA" (ByValhWnd As Long, _ ByValwMsg As Long, ByValwParam As Long, _ lParam As Any) As Long

第一个参数是接受消息的句柄,在本例中为TextBox控件的hWnd属性。 第二个参数是识别消息的数字。为了能够撤消某一操作,通常传递&HC7值,这也是代表着EM_UNDO常量。 第三个和第四个参数可用于某些消息,但在本例中它没有被使用,你可以将它们置为0。 函数返回的值取决于发送的消息。在本例中可以被省略。 为了能真正使用这一技巧,建立一个带有一个窗体的工程,窗体中包含一个TextBox控件和一个Command按钮控件。在Command按钮控件的点击事件程序中添加以下代码行:

SendMessage Text1.hWnd, EM_UNDO, 0&, 0&

在工程中添加一个模块并在模块中添加如下的代码:

Public Const EM_UNDO = &HC7 Public Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" (ByValhWnd As Long, _ ByValwMsg As Long, ByValwParam As Long, _ lParam As Any) As Long

当运行这一工程时,在TextBox控件中输入和编辑文本。可以看到,按钮撤消了最后一步的操作。

搜索更多相关主题的帖子: undo 撤消 
2005-04-05 09:35
cnliang
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2005-4-1
收藏
得分:0 
        谢谢!问题确实是出在这里(小弟经验不足,错误连连
但还有一个问题想请教:
        如果我连续输入字符 "ABCDEFG", 如何编写才能实现一次只删除一个字符,而不是撤消一次后就把整个字符串都删了?

耐心和持久 胜过 激烈和狂热
2005-04-05 10:54
cnliang
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2005-4-1
收藏
得分:0 
谢谢提供!

[此贴子已经被作者于2005-4-5 11:17:39编辑过]



耐心和持久 胜过 激烈和狂热
2005-04-05 11:15
cnliang
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2005-4-1
收藏
得分:0 
经测试可行,补送全部分数,再次感谢!!!

耐心和持久 胜过 激烈和狂热
2005-04-05 11:40
快速回复:[求助]在VB6中如何撤消(undo)上一步操作
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015514 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved