VBasicFacil

Principal - Enlaces - Codigo - Controles - API


Mensaje WM_SETTEXT

Mensaje

Const WM_ETTEXT = &HD

Plataformas

Descripcion

Envie el mensaje WM_GETTEXT a una ventana para recuperar el texto de la ventana. En las ventas normales, este texto es el que aparece en la barra de t´´itulo. El texto de la ventana es alojado en el buffer indicado en los parametros del mensaje. Tiene la misma funcionalidad que la función GetWindowText.

Valor devuelto

El mensaje devuelve el numero de caracteres del mensaje sin contar el caracter nulo de terminacion.

Parametros

wParam Numero de caracteres a copiar del texto de la ventana, incluyendo el caracter nulo de terminacion.

lParam Buffer que recibe los caracteres indicados por wParam (menos el caracter nulo) del texto de la ventana.

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 : 5 de diciembre de 2001
Copyright © 2001 Silared, s.l.
correo-e : vbasicfacil@silared.com