輕松實現“撤消/恢復”功能
發表于:2007-07-14來源:作者:點擊數:
標簽:
很多應用軟件提供的“撤消/恢復”按鈕能取消上一步操作或恢復下一步操作,大大地方便了用戶,可在自己設計的應用程序中如何實現“撤消/恢復”功能呢? 其實,“撤消”(即取消上一步操作)功能,在 VB 6.0中只需調用 Windows 的應用函數接口(API)中的SendMessag
很多應用軟件提供的“撤消/恢復”按鈕能取消上一步操作或恢復下一步操作,大大地方便了用戶,可在自己設計的應用程序中如何實現“撤消/恢復”功能呢?
其實,“撤消”(即取消上一步操作)功能,在
VB 6.0中只需調用
Windows的應用函數接口(API)中的SendMessage( )函數就可輕松實現,而“恢復”功能只需再次“UNDO”即可!
SendMessage( )函數聲明如下:
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
其中函數各參數說明:
hwnd是接收消息的窗口句柄;
wMsg是傳遞的消息;
wParam、lParam是消息參數。
現將制作過程列舉如下:
設計界面:創建一個新工程、在默認窗體Form1中加入控件Command1;設置其Caption屬性為“撤消”、加入文本控件Text1,Text屬性設為空。
事件聲明及事件代碼:
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
Dim undo As Boolean
'定義一個邏輯變量
Private Sub Command1_Click()
ls = SendMessage(Text1.hwnd, &&H
304, 0, 0)
'調用SendMessage( )函數
Text1.SetFocus
If undo Then
'撤消/恢復狀態的判定
Command1.Caption = "撤消"
Else
Command1.Caption = "恢復"
End If
undo = Not (undo)
End Sub
Private Sub Form_Load()
undo = False
End Sub
按[F5]運行,在文本框中進行某項操作!確實很簡單吧!
原文轉自:http://www.anti-gravitydesign.com