Funzione GetGUIThreadInfo (winuser.h)
Recupera informazioni sulla finestra attiva o su un thread GUI specificato.
Sintassi
BOOL GetGUIThreadInfo(
[in] DWORD idThread,
[in, out] PGUITHREADINFO pgui
);
Parametri
[in] idThread
Tipo: DWORD
Identificatore per il thread per cui recuperare le informazioni. Per recuperare questo valore, usare la funzione GetWindowThreadProcessId . Se questo parametro è NULL, la funzione restituisce informazioni per il thread in primo piano.
[in, out] pgui
Tipo: LPGUITHREADINFO
Puntatore a una struttura GUITHREADINFO che riceve informazioni che descrivono il thread. Si noti che è necessario impostare il membro cbSize su sizeof(GUITHREADINFO)
prima di chiamare questa funzione.
Valore restituito
Tipo: BOOL
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
Questa funzione ha esito positivo anche se la finestra attiva non è di proprietà del processo chiamante. Se il thread specificato non esiste o ha una coda di input, la funzione avrà esito negativo.
Questa funzione è utile per recuperare informazioni fuori contesto su un thread. Le informazioni recuperate sono uguali a se un'applicazione recupera le informazioni relative a se stessa.
Per un controllo di modifica, il rettangolo rcCaret restituito contiene le informazioni sulla direzione del testo e sulla spaziatura interna. Pertanto, potrebbe non dare la posizione corretta del cursore. Il tipo di carattere Sans Serif usa quattro caratteri per il cursore:
Carattere cursore | Unicode, punto di codice |
---|---|
CURSOR_LTR | 0xf00c |
CURSOR_RTL | 0xf00d |
CURSOR_THAI | 0xf00e |
CURSOR_USA | 0xfff (questo è un valore marcatore senza glifi associati) |
Per ottenere il punto di inserimento effettivo nel rettangolo rcCaret , seguire questa procedura.
- Chiamare GetKeyboardLayout per recuperare il linguaggio di input corrente.
- Determinare il carattere utilizzato per il cursore, in base alla lingua di input corrente.
- Chiamare CreateFont usando Sans Serif per il tipo di carattere, l'altezza specificata da rcCaret e una larghezza di
zero
. Per fnWeight chiamareSystemParametersInfo(SPI_GETCARETWIDTH, 0, pvParam, 0)
. Se pvParam è maggiore di 1, impostare fnWeight su 700, in caso contrario, impostare fnWeight su 400. - Selezionare il tipo di carattere in un contesto del dispositivo (DC) e usare GetCharABCWidths per ottenere la
B
larghezza del carattere di cursore appropriato. - Aggiungere la
B
larghezza a rcCaret.sinistra per ottenere il punto di inserimento effettivo.
La funzione potrebbe non restituire handle di finestra validi nella struttura GUITHREADINFO quando viene chiamato per recuperare informazioni per il thread in primo piano, ad esempio quando una finestra perde l'attivazione.
Virtualizzazione DPI
Le coordinate restituite nella correzione rcCaret dello struct GUITHREADINFO sono coordinate logiche in termini di finestra associata al caret. Non vengono virtualizzati nella modalità del thread chiamante.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-1 (introdotto in Windows 8.1) |
Vedi anche
Informazioni concettuali
Riferimento