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
Referencia