Funzione GetWindowTextA (winuser.h)

Copia il testo della barra del titolo della finestra specificata (se ne ha uno) in un buffer. Se la finestra specificata è un controllo, il testo del controllo viene copiato. Tuttavia, GetWindowText non può recuperare il testo di un controllo in un'altra applicazione.

Sintassi

int GetWindowTextA(
  [in]  HWND  hWnd,
  [out] LPSTR lpString,
  [in]  int   nMaxCount
);

Parametri

[in] hWnd

Tipo: HWND

Handle per la finestra o il controllo contenente il testo.

[out] lpString

Tipo: LPTSTR

Buffer che riceverà il testo. Se la stringa è lunga o più lunga del buffer, la stringa viene troncata e terminata con un carattere Null.

[in] nMaxCount

Tipo: int

Numero massimo di caratteri da copiare nel buffer, incluso il carattere Null. Se il testo supera questo limite, viene troncato.

Valore restituito

Tipo: int

Se la funzione ha esito positivo, il valore restituito è la lunghezza, in caratteri, della stringa copiata, non incluso il carattere null terminante. Se la finestra non ha alcuna barra del titolo o testo, se la barra del titolo è vuota o se l'handle di finestra o controllo non è valido, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Questa funzione non può recuperare il testo di un controllo di modifica in un'altra applicazione.

Commenti

Se la finestra di destinazione è di proprietà del processo corrente, GetWindowText causa l'invio di un messaggio di WM_GETTEXT alla finestra o al controllo specificato. Se la finestra di destinazione è di proprietà di un altro processo e dispone di un didascalia, GetWindowText recupera il testo della finestra didascalia. Se la finestra non ha un didascalia, il valore restituito è una stringa Null. Questo comportamento dipende dalla progettazione. Consente alle applicazioni di chiamare GetWindowText senza rispondere se il processo proprietario della finestra di destinazione non risponde. Tuttavia, se la finestra di destinazione non risponde e appartiene all'applicazione chiamante, GetWindowText causerà la mancata risposta dell'applicazione chiamante.

Per recuperare il testo di un controllo in un altro processo, inviare un messaggio di WM_GETTEXT direttamente anziché chiamare GetWindowText.

Esempio

Il codice di esempio seguente illustra una chiamata 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); 

Per visualizzare questo esempio nel contesto, vedere Invio di un messaggio.

Nota

L'intestazione winuser.h definisce GetWindowText come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winuser.h (include Windows.h)
Libreria User32.lib
DLL User32.dll
Set di API ext-ms-win-ntuser-window-l1-1-4 (introdotta in Windows 10, versione 10.0.14393)

Vedi anche

Informazioni concettuali

GetWindowTextLength

Riferimento

SetWindowText

WM_GETTEXT

Windows