winuser.h

Mensaje WM_GETTEXTLENGTH

Definición

WM_GETTEXTLENGTH
wParam = 0; // no se usa; debe ser cero
lParam = 0; // no se usa; debe ser cero

El mensaje WM_GETTEXTLENGTH se envía para determinar la longitud en caracteres del texto asociado a una ventana. La longitud no incluye el carácter nulo de terminación.

Descripción

Este mensaje no tiene parámetros.

Valor de retorno

El valor de retorno en la longitud de la cadena, en caracteres, excluyendo el terminador nulo.

Acción por defecto

La función DefWindowProc devuelve la longitud en caracteres del texto. Bajo algunas condiciones, ese valor pude ser mayor que la longitud real del texto. Para mayor detalle, ver la sección de observaciones.

Observaciones

Para un control edit, el texto a copiar es el contenido del control edit. Para un combo box, el texto es el contenido del control edit (o del control static) asociado al combo box. Par un button, el texto es el nombre del button. Para otras ventanas, es el título de la ventana. Para determinar la longitud de un ítem en un list box, se puede usar el mensaje LB_GETTEXTLEN.

Bajo algunas condiciones, la función DefWindowProc puede retornar un valor más grande que la longitud del texto. Esto ocurre con ciertas mezclas de ANSI y Unicode, y es debido a que el sistema operativo permite la posible existencia de juegos de caracteres de doble byte (DBCS) en el texto. El valor de retorno, sin embargo, será siempre por lo menos tan largo como el tamaño actual del texto; y puede ser usado siempre como guía para obtener memoria para el buffer. Este comportamiento puede ocurrir cuando una aplicación use funciones ANSI y diálogos comunes, junto con Unicode.

Para obtener la longitud exacta del texto, usar los mensajes WM_GETTEXT, LB_GETTEXT o CB_GETLBTEXT, o la función GetWindowText.