Compartir a través de


Función GetWindowTextA (winuser.h)

Copia el texto de la barra de título de la ventana especificada (si tiene uno) 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 de

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 NULL.

[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 el identificador de ventana o control no es válido, 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.

Observaciones

Si la ventana de destino es propiedad del proceso actual, GetWindowText hace que se envíe un mensaje WM_GETTEXT a la ventana o control especificados. Si la ventana de destino es propiedad de otro proceso y tiene un título, GetWindowText recupera el texto del título de la ventana. Si la ventana no tiene un título, el valor devuelto es una cadena nula. Este comportamiento es por diseño. Permite que las aplicaciones llamen 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, vea Enviar 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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional [solo aplicaciones de escritorio]
servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de winuser.h (incluya Windows.h)
biblioteca de User32.lib
DLL de User32.dll
conjunto de API de ext-ms-win-ntuser-window-l1-1-4 (introducido en Windows 10, versión 10.0.14393)

Consulte también

conceptual de

GetWindowTextLength

de referencia de

setWindowText

WM_GETTEXT

Windows