Hola, ¿como puedo deshacer una accion realizada en una caja de texto? Por ejemplo, el bloc de notas, escribes algo y puedes deshacer lo escrito, o borrar algo, y deshacer el borrado. Tengo este codigo:
Declaración de la función API y las constantes:
- Private Declare Function SendMessage Lib "User" (ByVal hWnd _  
-          As Long, ByVal wMsg As Long, ByVal wParam As Long, _  
-          lParam As Long) As Long  
-   
-          Const WM_USER = &H400  
-          Const EM_CANUNDO = WM_USER + 22  
-          Const EM_EMPTYUNDOBUFFER = WM_USER + 29  
-          Const EM_UNDO = WM_USER + 23 
-   
Botón Undo:
- Dim ok As Long  
- ok = SendMessage(Text1.hWnd, EM_UNDO, 0, 0&)  
- ok = SendMessage(Text1.hWnd, EM_EMPTYUNDOBUFFER, 0, 0&) 
-   
Botón Redo:
- Dim ok As Long  
- ok = SendMessage(Text1.hWnd, EM_CANUNDO, 0, 0&)  
- If ok = 0 Then  
-      MsgBox "No puedo deshacer los cambios", 16, "Error"  
- End If  
- ok = SendMessage(Text1.hWnd, EM_UNDO, 0, 0&) 
-   
Previamente he realizado cambios de todo tipo en la caja de texo para luego poder probar el codigo (obvio), pero no funciona. ¿Me falta algo? ¿Esta mal este codigo? o ¿Hay alguna otra manera de realizar lo que quiero?
Un saludo y gracias de antemano.