用Visual Basic實現undo功能

發表于:2007-05-25來源:作者:點擊數: 標簽:設計undovisual實現功能
一、設計思路 一般的字處理軟件,如WPS Office、Word都有撤銷功能,極大地方便了用戶,可是這項功能用 VB 該如何實現呢?這就要用到SendMessage函數,該函數的功能就是向指定的窗口發送一條消息,它有4個參數,含義如下: .hWnd:用來指定要接受消息的窗口的
  一、設計思路

  一般的字處理軟件,如WPS Office、Word都有撤銷功能,極大地方便了用戶,可是這項功能用VB該如何實現呢?這就要用到SendMessage函數,該函數的功能就是向指定的窗口發送一條消息,它有4個參數,含義如下:

  .hWnd:用來指定要接受消息的窗口的句柄;

  .wMsg:用來指定要發送的消息的編號;

  .wParam:用來指定消息的第一參數;

  .1Param:用來消息的第二參數。

  二、實戰

  新建一個EXE窗體,上面放置一個textbox、兩個 commndbotton控件,名稱分別為text1、command1、command2,caption分別為text1、撤銷、退出,其它設置取默認值。

  打開API閱覽器,將函數SendMessage復制到窗體代碼中。所有源代碼如下:

clearcase/" target="_blank" >cc66" width="90%" align="center" bgcolor="#dadacf" border="1">
Option Explicit

 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
 Private Const EM_CANUNDO = &HC6
 Private Const EM_UNDO = &HC7

Private Sub Command1_Click()
 Dim i As Integer
 i = SendMessage(Text1.hwnd, EM_UNDO, 0, 0)
End Sub

Private Sub Command2_Click()
 End
End Sub

  在這個程序中,我們向文本框發送了一個EM_UNDO消息,該消息的功能是取消文本框的最后一個編輯操作。對于該消息,wParam和1Param均無用,故都設為0。

  按F5看看效果吧,是不是有一種成就感。以上代碼在windowsXP家庭版和VB6中文企業版下運行通過。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97