GetGUIThreadInfo, fonction (winuser.h)
Récupère des informations sur la fenêtre active ou un thread d’interface utilisateur spécifié.
Syntaxe
BOOL GetGUIThreadInfo(
[in] DWORD idThread,
[in, out] PGUITHREADINFO pgui
);
Paramètres
[in] idThread
Type : DWORD
Identificateur du thread pour lequel les informations doivent être récupérées. Pour récupérer cette valeur, utilisez la fonction GetWindowThreadProcessId . Si ce paramètre a la valeur NULL, la fonction retourne des informations pour le thread de premier plan.
[in, out] pgui
Type : LPGUITHREADINFO
Pointeur vers une structure GUITHREADINFO qui reçoit des informations décrivant le thread. Notez que vous devez définir le membre cbSize sur sizeof(GUITHREADINFO)
avant d’appeler cette fonction.
Valeur retournée
Type : BOOL
Si la fonction réussit, la valeur de retour est différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
Cette fonction réussit même si la fenêtre active n’appartient pas au processus appelant. Si le thread spécifié n’existe pas ou a une file d’attente d’entrée, la fonction échoue.
Cette fonction est utile pour récupérer des informations hors contexte sur un thread. Les informations récupérées sont les mêmes que si une application récupérait les informations la concernant.
Pour un contrôle d’édition, le rectangle rcCaret retourné contient l’insertion ainsi que des informations sur la direction et le remplissage du texte. Par conséquent, il peut ne pas donner la position correcte du curseur. La police Sans Serif utilise quatre caractères pour le curseur :
Caractère de curseur | point de code Unicode |
---|---|
CURSOR_LTR | 0xf00c |
CURSOR_RTL | 0xf00d |
CURSOR_THAI | 0xf00e |
CURSOR_USA | 0xfff (il s’agit d’une valeur de marqueur sans glyphe associé) |
Pour obtenir le point d’insertion réel dans le rectangle rcCaret , procédez comme suit.
- Appelez GetKeyboardLayout pour récupérer la langue d’entrée actuelle.
- Déterminez le caractère utilisé pour le curseur, en fonction de la langue d’entrée actuelle.
- Appelez CreateFont en utilisant Sans Serif pour la police, la hauteur donnée par rcCaret et une largeur de
zero
. Pour fnWeight, appelezSystemParametersInfo(SPI_GETCARETWIDTH, 0, pvParam, 0)
. Si pvParam est supérieur à 1, définissez fnWeight sur 700, sinon, définissez fnWeight sur 400. - Sélectionnez la police dans un contexte d’appareil (DC) et utilisez GetCharABCWidths pour obtenir la
B
largeur du caractère de curseur approprié. - Ajoutez la
B
largeur à rcCaret.gauche pour obtenir le point d’insertion réel.
La fonction peut ne pas retourner de handles de fenêtre valides dans la structure GUITHREADINFO lorsqu’elle est appelée pour récupérer des informations pour le thread de premier plan, par exemple lorsqu’une fenêtre perd l’activation.
Virtualisation PPP
Les coordonnées retournées dans la rect rcCaret du struct GUITHREADINFO sont des coordonnées logiques en termes de fenêtre associée à l’insertion. Ils ne sont pas virtualisés dans le mode du thread appelant.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-1 (introduit dans Windows 8.1) |
Voir aussi
Conceptuel
Référence