Partager via


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

GetWindowTextLength

de référence

SetWindowText

WM_GETTEXT

Windows