Hola, a ver si me podeis ayudar, porque sinceramente no se lo que puede pasar... :-(
Tengo esto:
Option Explicit
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Any, ByVal lParam As Long) As Long
Private Sub Form_Load()
Timer1.Interval = 1500: Text1 = "HOla amigosssss"
End Sub
Private Sub Timer1_Timer()
Call SendMessage(Text1.hwnd, &H102, vbKeyLeft, 0&)
End Sub
Entonces se supone que cada 1500 ms la posicion del texto deberia moverse un sitio a la izquierda, ¿no? Pero en el text box me va añadiendo el caracter %... :o
Y si pongo vbKeySpace funciona bien, me va añadiendo espacios, pero porque falla con vbKeyLeft??? :huh:
Gracias! :-*
Si lo que quieres hacer es cambiar el cursor de posicion (presionar flechitas) estas enviando el mensaje equivocado
El mensaje WM_CHAR (&H102) es para agregar un caracter, y el valor de la flechita en ascii es "%" (creo)
Asi que tienes que enviar un mensaje que presione teclas: WM_KEYDOWN
el code quedaria asi:
Option Explicit
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Any, ByVal lParam As Long) As Long
Private Const WM_KEYDOWN As Long = &H100
Private Sub Form_Load()
Timer1.Interval = 1500: Text1 = "HOla amigosssss"
End Sub
Private Sub Timer1_Timer()
Call SendMessage(Text1.hwnd, WM_KEYDOWN, vbKeyRight, 0&)
End Sub
:) espero que te sirva!!
SII!
Funciona!
Gracias tio! ;-)
Salu2!