How To Determine If Text in a Text Box Can Be Undone (160974)



The information in this article applies to:

  • Microsoft Visual Basic Learning Edition for Windows 5.0
  • Microsoft Visual Basic Learning Edition for Windows 6.0
  • Microsoft Visual Basic Professional Edition for Windows 5.0
  • Microsoft Visual Basic Professional Edition for Windows 6.0
  • Microsoft Visual Basic Enterprise Edition for Windows 5.0
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0

This article was previously published under Q160974

SUMMARY

This article shows, by example, how to determine at any given time if the text entered into a text box can be undone.

MORE INFORMATION

By using the Windows API SendMessage(), you can send an EM_CANUNDO message to a TextBox control to determine whether an operation on it can be undone; that is, whether the control can respond to the EM_UNDO message. If the TextBox control can correctly process the EM_UNDO message, the return value from SendMessage() is True; otherwise, it is False.

Step-by-Step Example

  1. Start a new Standard EXE project. Form1 is created by default.
  2. Add a TextBox control (Text1) to Form1.
  3. Add the following code to Form1's General Declarations section:
          Const EM_CANUNDO = &HC6
          Private Declare Function SendMessage Lib "User32" Alias _
          "SendMessageA" _
             (ByVal hWnd As Long, _
              ByVal wMsg As Long, _
              ByVal wParam As Long, _
              ByVal lParam As Long) As Long
    
          Private Sub Form_Load()
             Text1.Text = ""
          End Sub
    
          Private Sub Form_Click()
             Dim lRet As Long
    
             lRet = SendMessage(Text1.hWnd, EM_CANUNDO, 0&, 0&)
             Debug.Print lRet
          End Sub
    						
  4. Press the F5 key to run the program. Type some text into the text box and click Form1. The Debug window displays a value of 1 indicating that the text you just entered can be undone. Note that if no text is typed into the text box and the form is clicked, SendMessage()returns 0 because there is nothing to undo.

Modification Type:MinorLast Reviewed:7/1/2004
Keywords:kbhowto KB160974