Función GetWindowTextA (winuser.h)

Copia el texto de la barra de título de la ventana especificada (si tiene una) en un búfer. Si la ventana especificada es un control, se copia el texto del control. Sin embargo, GetWindowText no puede recuperar el texto de un control en otra aplicación.

Sintaxis

int GetWindowTextA(
  [in]  HWND  hWnd,
  [out] LPSTR lpString,
  [in]  int   nMaxCount
);

Parámetros

[in] hWnd

Tipo: HWND

Identificador de la ventana o control que contiene el texto.

[out] lpString

Tipo: LPTSTR

Búfer que recibirá el texto. Si la cadena es tan larga o más larga que el búfer, la cadena se trunca y finaliza con un carácter NULO.

[in] nMaxCount

Tipo: int

Número máximo de caracteres que se van a copiar en el búfer, incluido el carácter NULL. Si el texto supera este límite, se trunca.

Valor devuelto

Tipo: int

Si la función se ejecuta correctamente, el valor devuelto es la longitud, en caracteres, de la cadena copiada, sin incluir el carácter nulo de terminación. Si la ventana no tiene ninguna barra de título o texto, si la barra de título está vacía o si la ventana o el identificador de control no son válidos, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Esta función no puede recuperar el texto de un control de edición en otra aplicación.

Comentarios

Si la ventana de destino es propiedad del proceso actual, GetWindowText hace que se envíe un mensaje de WM_GETTEXT a la ventana o control especificados. Si la ventana de destino es propiedad de otro proceso y tiene un subtítulo, GetWindowText recupera la ventana subtítulo texto. Si la ventana no tiene un subtítulo, el valor devuelto es una cadena nula. Este comportamiento es así por diseño. Permite a las aplicaciones llamar a GetWindowText sin dejar de responder si el proceso que posee la ventana de destino no responde. Sin embargo, si la ventana de destino no responde y pertenece a la aplicación que realiza la llamada, GetWindowText hará que la aplicación que realiza la llamada deje de responder.

Para recuperar el texto de un control en otro proceso, envíe un mensaje de WM_GETTEXT directamente en lugar de llamar a GetWindowText.

Ejemplos

En el código de ejemplo siguiente se muestra una llamada a GetWindowTextA.

hwndCombo = GetDlgItem(hwndDlg, IDD_COMBO); 
cTxtLen = GetWindowTextLength(hwndCombo); 

// Allocate memory for the string and copy 
// the string into the memory. 

pszMem = (PSTR) VirtualAlloc((LPVOID) NULL, 
    (DWORD) (cTxtLen + 1), MEM_COMMIT, 
    PAGE_READWRITE); 
GetWindowText(hwndCombo, pszMem, 
    cTxtLen + 1); 

Para ver este ejemplo en contexto, consulte Envío de un mensaje.

Nota

El encabezado winuser.h define GetWindowText como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluya Windows.h)
Library User32.lib
Archivo DLL User32.dll
Conjunto de API ext-ms-win-ntuser-window-l1-1-4 (introducido en Windows 10, versión 10.0.14393)

Consulte también

Conceptual

GetWindowTextLength

Referencia

SetWindowText

WM_GETTEXT

Windows