VBasicFacil

Principal - Enlaces - Codigo - Controles - API


Mensaje WM_GETTEXTLENGTH

Mensaje

Const WM_GETTEXTLENGTH = &HE

Plataformas

Descripcion

Envie el mensaje WM_GETTEXTLENGTH a una ventana para ver el numero de caracteres en el texto de la ventana. Este contador de caracteresno incluye el caracter nulo de terminación. En algunos casos, este mensaje puede devolver un número de caracteres superior al real, sin embargo nunca sera inferior al numero de caracteres. Tiene la misma funcionalidad que la función GetWindowTextLength.

Valor devuelto

Cuando se use SendMessage para enviar el mensaje WM_GETTEXTLENGTH, ambos parametros, wParam y lParam deben cargarse usando la expresión ByVal CLng(0).

Parametros

wParam no se usa, debe ponerse a 0.

lParam no se usa, debe ponerse a 0.

Ejemplo

Formulario (Contiene un ControlButton y un Timer)

Option Explicit

'   Programa de ejemplo de como podemos rotar el texto
'   de un CommanButton. Uso un CommandButton para mostrar
'   que no solo se puede cambiar el texto de la barra de
'   titulo del formulario. 


Private Sub Command1_Click()
    Unload Me
End Sub


Private Sub Timer1_Timer()
    RotarTexto Command1
End Sub

Modulo (Implementado solo por claridad, podría ir en el formulario)

Option Explicit


Public Declare Function SendMessage _
        Lib "user32" _
        Alias "SendMessageA" _
       (ByVal hwnd As Long, _
        ByVal wMsg As Long, _
        ByVal wParam As Long, _
        lParam As Any) As Long
        
Public Const WM_GETTEXTLENGTH = &HE
Public Const WM_GETTEXT = &HD
Public Const WM_SETTEXT = &HC

Public Sub RotarTexto(Boton As CommandButton)
    Dim Longitud As Long    ' Longitud del texto del boton
    Dim Texto As String     ' Texto del boton
    Dim slength As Long     ' Longitud del contenido del texto del boton
    Dim retval As Long
    
    Longitud = SendMessage(Boton.hwnd, WM_GETTEXTLENGTH, ByVal CLng(0), ByVal CLng(0)) + 1
    '   Obtenemos la longitud del texto. Recordar que termina en un caracter nulo.
    Texto = Space(Longitud)
    '   Preparamos Texto para recibir todos los caracters del texto
    retval = SendMessage(Boton.hwnd, WM_GETTEXT, ByVal Longitud, ByVal Texto)
    '   Pasamos el primer caracter del texto al final
    Texto = Mid(Texto, 2, Longitud - 2) & Left(Texto, 1)
    retval = SendMessage(Boton.hwnd, WM_SETTEXT, ByVal Longitud, ByVal Texto)
    '   Actualizamos el texto del boton
    '   Si se produce un error en retval tendremos un 0
End Sub
Descargar Codigo : WM_GETTEXT.zip

Ultima actualización : 4 de diciembre de 2001
Copyright © 2001 Silared, s.l.
correo-e : vbasicfacil@silared.com