GetWindowTextA, fonction (winuser.h)
Copie le texte de la barre de titre de la fenêtre spécifiée (s’il en a un) dans une mémoire tampon. Si la fenêtre spécifiée est un contrôle, le texte du contrôle est copié. Toutefois, GetWindowText ne peut pas récupérer le texte d’un contrôle dans une autre application.
Syntaxe
int GetWindowTextA(
[in] HWND hWnd,
[out] LPSTR lpString,
[in] int nMaxCount
);
Paramètres
[in] hWnd
Type : HWND
Handle vers la fenêtre ou le contrôle contenant le texte.
[out] lpString
Type : LPTSTR
Mémoire tampon qui recevra le texte. Si la chaîne est aussi longue ou plus longue que la mémoire tampon, la chaîne est tronquée et se termine par un caractère Null.
[in] nMaxCount
Type : int
Nombre maximal de caractères à copier dans la mémoire tampon, y compris le caractère Null. Si le texte dépasse cette limite, il est tronqué.
Valeur de retour
Type : int
Si la fonction réussit, la valeur de retour est la longueur, en caractères, de la chaîne copiée, sans inclure le caractère null de fin. Si la fenêtre n’a pas de barre de titre ou de texte, si la barre de titre est vide ou si le handle de fenêtre ou de contrôle n’est pas valide, la valeur de retour est égale à zéro. Pour obtenir des informations d’erreur étendues, appelez GetLastError.
Cette fonction ne peut pas récupérer le texte d’un contrôle d’édition dans une autre application.
Remarques
Si la fenêtre cible appartient au processus actuel, GetWindowText provoque l’envoi d’un message WM_GETTEXT à la fenêtre ou au contrôle spécifié. Si la fenêtre cible appartient à un autre processus et possède une légende, GetWindowText récupère le texte de légende de la fenêtre. Si la fenêtre n’a pas de légende, la valeur de retour est une chaîne Null. Ce comportement est par conception. Elle permet aux applications d’appeler GetWindowText sans être réresponsive si le processus propriétaire de la fenêtre cible ne répond pas. Toutefois, si la fenêtre cible ne répond pas et qu’elle appartient à l’application appelante, GetWindowText entraîne la non-réponse de l’application appelante.
Pour récupérer le texte d’un contrôle dans un autre processus, envoyez un message WM_GETTEXT directement au lieu d’appeler GetWindowText.
Exemples
L’exemple de code suivant illustre un appel à 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);
Pour voir cet exemple dans le contexte, consultez Envoi d’un message.
Note
L’en-tête winuser.h définit GetWindowText comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
serveur minimum pris en charge | Windows 2000 Server [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | winuser.h (include Windows.h) |
bibliothèque | User32.lib |
DLL | User32.dll |
ensemble d’API | ext-ms-win-ntuser-window-l1-1-4 (introduit dans Windows 10, version 10.0.14393) |
Voir aussi
conceptuelle
de référence