Partager via


CalculatePopupWindowPosition, fonction (winuser.h)

Calcule une position de fenêtre contextuelle appropriée à l’aide du point d’ancrage, de la taille de fenêtre contextuelle, des indicateurs et du rectangle d’exclusion facultatif spécifiés. Lorsque la taille de fenêtre contextuelle spécifiée est inférieure à la taille de la fenêtre de bureau, utilisez la fonction CalculatePopupWindowPosition pour vous assurer que la fenêtre contextuelle est entièrement visible sur la fenêtre de bureau, quel que soit le point d’ancrage spécifié.

Syntaxe

BOOL CalculatePopupWindowPosition(
  [in]           const POINT *anchorPoint,
  [in]           const SIZE  *windowSize,
  [in]           UINT        flags,
  [in, optional] RECT        *excludeRect,
  [out]          RECT        *popupWindowPosition
);

Paramètres

[in] anchorPoint

Type : const POINT*

Point d’ancrage spécifié.

[in] windowSize

Type : const SIZE*

Taille de fenêtre spécifiée.

[in] flags

Type : UINT

Utilisez l’un des indicateurs suivants pour spécifier la façon dont la fonction positionne la fenêtre contextuelle horizontalement et verticalement. Les indicateurs sont les mêmes que les indicateurs de positionnement vertical et horizontal de la fonction TrackPopupMenuEx .

Utilisez l’un des indicateurs suivants pour spécifier la façon dont la fonction positionne horizontalement la fenêtre contextuelle.

Valeur Signification
TPM_CENTERALIGN
0x0004L
Fenêtre contextuelle de centres horizontalement par rapport à la coordonnée spécifiée par le paramètre anchorPoint-x>.
TPM_LEFTALIGN
0x0000L
Positionne la fenêtre contextuelle de sorte que son bord gauche soit aligné sur la coordonnée spécifiée par le paramètre anchorPoint-x>.
TPM_RIGHTALIGN
0x0008L
Positionne la fenêtre contextuelle afin que son bord droit soit aligné sur la coordonnée spécifiée par le paramètre anchorPoint-x>.
 

Utilise l’un des indicateurs suivants pour spécifier la façon dont la fonction positionne verticalement la fenêtre contextuelle.

Valeur Signification
TPM_BOTTOMALIGN
0x0020L
Positionne la fenêtre contextuelle afin que son bord inférieur soit aligné sur la coordonnée spécifiée par le paramètre anchorPoint-y>.
TPM_TOPALIGN
0x0000L
Positionne la fenêtre contextuelle afin que son bord supérieur soit aligné sur la coordonnée spécifiée par le paramètre anchorPoint-y>.
TPM_VCENTERALIGN
0x0010L
Centre la fenêtre contextuelle verticalement par rapport à la coordonnée spécifiée par le paramètre anchorPoint-y>.
 

Utilisez l’un des indicateurs suivants pour spécifier s’il faut prendre en charge l’alignement horizontal ou vertical.

Valeur Signification
TPM_HORIZONTAL
0x0000L
Si la fenêtre contextuelle ne peut pas être affichée à l’emplacement spécifié sans chevaucher le rectangle exclu, le système tente de prendre en charge l’alignement horizontal demandé avant l’alignement vertical demandé.
TPM_VERTICAL
0x0040L
Si la fenêtre contextuelle ne peut pas être affichée à l’emplacement spécifié sans chevaucher le rectangle exclu, le système tente de prendre en charge l’alignement vertical demandé avant l’alignement horizontal demandé.
 

L’indicateur suivant est disponible à partir de Windows 7.

Valeur Signification
TPM_WORKAREA
0x10000L
Limite la fenêtre contextuelle à l’intérieur de la zone de travail. Si cet indicateur n’est pas défini, la fenêtre contextuelle est limitée à la zone de travail uniquement si le point d’entrée se trouve dans la zone de travail. Pour plus d’informations, consultez les membres rcWork et rcMonitor de la structure MONITORINFO .

[in, optional] excludeRect

Type : RECT*

Pointeur vers une structure qui spécifie le rectangle d’exclusion. Elle peut être NULL.

[out] popupWindowPosition

Type : RECT*

Pointeur vers une structure qui spécifie la position de la fenêtre contextuelle.

Valeur retournée

Type : BOOL

Si la fonction réussit, elle retourne TRUE ; sinon, elle retourne FALSE. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

TPM_WORKAREA est pris en charge pour les fonctions TrackPopupMenu et TrackPopupMenuEx .

Configuration requise

   
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winuser.h (inclure Windows.h)
Bibliothèque User32.lib
DLL User32.dll

Voir aussi

Référence

TrackPopupMenu

TrackPopupMenuEx