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

Last reviewed: July 16, 1996
Article ID: Q153633
The information in this article applies to:
  • Standard, Professional, and Enterprise Editions of Microsoft Visual Basic for Windows, 16-bit and 32-bit, version 4.0

SUMMARY

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

MORE INFORMATION

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 project in Visual Basic 4.0. Form1 is added by default.

  2. Add a text box (Text1) to Form1.

  3. Add the following code to the General Declaration portion of Form1:

    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_Click()
         Dim lRet As Long
    
         lRet = SendMessage(Text1.hwnd, EM_CANUNDO, 0&, 0&)
         Debug.Print lRet
       End Sub
    
    

  4. Press F5 to run the program. Type some text into the text box and click Form1. The Debug window will display a value of 1 indicating that the text just entered can be undone. Note that if no text is typed into the text box and the form is clicked, SendMessage() will return 0, as there is nothing to undo.


Additional reference words: 4.00 vb4win vb4all
KBCategory: kbusage kbprg kbhowto
KBSubcategory: PrgCtrls



THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: July 16, 1996
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.