Knowledge Base

How To Determine If Text in a Text Box Can Be Undone

Article ID: 160974

Article Last Modified on 7/1/2004


APPLIES TO


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.

Keywords: kbhowto KB160974