Partager via


GetWindowTextA, fonction (winuser.h)

Copie le texte de la barre de titre de la fenêtre spécifiée (le cas échéant) 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 de la fenêtre ou du 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 terminée 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 retournée

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 la fenêtre ou le handle de contrôle n’est pas valide, la valeur de retour est zéro. Pour obtenir des informations détaillées sur l’erreur, 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 a un légende, GetWindowText récupère la fenêtre légende texte. Si la fenêtre n’a pas de légende, la valeur renvoyée est une chaîne null. Ce comportement est normal. Il permet aux applications d’appeler GetWindowText sans répondre 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 empêche l’application appelante de répondre.

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 en contexte, consultez Envoi d’un message.

Notes

L’en-tête winuser.h définit GetWindowText en tant qu’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. La combinaison 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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winuser.h (inclure 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

Conceptuel

GetWindowTextLength

Référence

SetWindowText

WM_GETTEXT

Windows