如何在RichTextBox中实现Undo功能_VB.net_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

如何在RichTextBox中实现Undo功能

作者:黑客防线网安VB教程基地 来源:黑客防线网安VB教程基地 浏览次数:0

本篇关键词:功能实现如何'
黑客防线网安网讯:SendMessage函数在RichTextBox中实现: 一、一次撤销功能 二、无限地撤销功能 生活中的What's done cannot be undone在我们的程序中应该改为What's done can always be undone。你不...

SendMessage函数在RichTextBox中实现:

一、一次撤销功能

二、无限地撤销功能

生活中的What's done cannot be undone在我们的程序中应该改为What's done can always be undone你不相信?那么请看——
如果仅仅象MS的小记事本那样只有一次undo功能那不是一件麻烦事用SendMessage函数就可以轻松实现下列代码能使RichTextBox有一次撤销操作的功能:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Const WM_UNDO = &H304

'下一行为按钮或菜单代码
SendMessage RichTextBox1.hwnd, WM_UNDO, 0, 0

是不是很容易?不过,想要无限地undo下次,就不那么简单了。土人曾拟编写一个,却无意中发现了Bart Lorang,一个年仅十多岁的美国小子已经在网上公开了类似的代码。这家伙敢跟老盖叫劲儿,号称"Not the next Bill Gates, but the first Bart Lorang",好大的口气!不过他的程序确实不错,现特意将其内容拿出来给大家瞧瞧。为了适用于中文环境,土人对源码作了些微改动。注意:不仅可以undo,还可以redo哟!

(如果你用此代码于你编制的记事本,Bart Lorang要求给他发一个拷贝:BartLorang@POBoxes.com)

' ****** 模块代码:

'申明API函数
Public Declare Function SendMessage Lib "User32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Long) As Long

'常数
Public Const WM_USER = &H400
Public Const EM_HIDESELECTION = WM_USER + 63

' ****** 类模块代码:

Public SelStart As Long '文本框中的开始位置
Public TextLen As Long '文本长度
Public Text As String '文本内容

' ****** 窗体代码:

'请给窗体添加按钮两个、RichTextBox一个,取默认值;
'菜单若干:——
'层次 Name属性 Caption属性
' 1 Edit 编辑
' 2 mnuUndo 撤销
' 2 mnuRedo 恢复
' 2 mnuCut 剪切
' 2 mnuCopy 复制
' 2 mnuPaste 粘贴
' 2 mnuDelete 删除
' 2 mnuSelectAll 全选

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-14726-1.html
网站维护教程更新时间:2012-04-03 01:13:15  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer