Freigeben über


CalculatePopupWindowPosition-Funktion (winuser.h)

Berechnet eine geeignete Popupfensterposition unter Verwendung des angegebenen Ankerpunkts, der größe des Popupfensters, der Flags und des optionalen Rechtecks ausschließen. Wenn die angegebene Popupfenstergröße kleiner als die Desktopfenstergröße ist, verwenden Sie die CalculatePopupWindowPosition-Funktion , um sicherzustellen, dass das Popupfenster im Desktopfenster vollständig sichtbar ist, unabhängig vom angegebenen Ankerpunkt.

Syntax

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

Parameter

[in] anchorPoint

Typ: const POINT*

Der angegebene Ankerpunkt.

[in] windowSize

Typ: const SIZE*

Die angegebene Fenstergröße.

[in] flags

Typ: UINT

Verwenden Sie eines der folgenden Flags, um anzugeben, wie die Funktion das Popupfenster horizontal und vertikal positioniert. Die Flags sind identisch mit den vertikalen und horizontalen Positionierungsflags der TrackPopupMenuEx-Funktion .

Verwenden Sie eines der folgenden Flags, um anzugeben, wie die Funktion das Popupfenster horizontal positioniert.

Wert Bedeutung
TPM_CENTERALIGN
0x0004L
Zentriert das Popupfenster horizontal relativ zur durch den anchorPoint-x-Parameter> angegebenen Koordinate.
TPM_LEFTALIGN
0x0000L
Positioniert das Popupfenster so, dass sein linker Rand an der vom anchorPoint-x-Parameter> angegebenen Koordinate ausgerichtet wird.
TPM_RIGHTALIGN
0x0008L
Positioniert das Popupfenster so, dass der rechte Rand an der vom anchorPoint-x-Parameter> angegebenen Koordinate ausgerichtet wird.
 

Verwendet eines der folgenden Flags, um anzugeben, wie die Funktion das Popupfenster vertikal positioniert.

Wert Bedeutung
TPM_BOTTOMALIGN
0x0020L
Positioniert das Popupfenster so, dass sein unterer Rand an der im anchorPoint-y-Parameter> angegebenen Koordinate ausgerichtet wird.
TPM_TOPALIGN
0x0000L
Positioniert das Popupfenster so, dass der obere Rand an der vom anchorPoint-y-Parameter> angegebenen Koordinate ausgerichtet wird.
TPM_VCENTERALIGN
0x0010L
Zentriert das Popupfenster vertikal relativ zur vom anchorPoint-y-Parameter> angegebenen Koordinate.
 

Verwenden Sie eines der folgenden Flags, um anzugeben, ob horizontale oder vertikale Ausrichtung berücksichtigt werden soll.

Wert Bedeutung
TPM_HORIZONTAL
0x0000L
Wenn das Popupfenster nicht an der angegebenen Stelle angezeigt werden kann, ohne das ausgeschlossene Rechteck zu überlappen, versucht das System, die angeforderte horizontale Ausrichtung vor der angeforderten vertikalen Ausrichtung zu berücksichtigen.
TPM_VERTICAL
0x0040L
Wenn das Popupfenster nicht an der angegebenen Stelle ohne Überlappung des ausgeschlossenen Rechtecks angezeigt werden kann, versucht das System, die angeforderte vertikale Ausrichtung vor der angeforderten horizontalen Ausrichtung zu berücksichtigen.
 

Das folgende Flag ist ab Windows 7 verfügbar.

Wert Bedeutung
TPM_WORKAREA
0x10000L
Schränkt das Popupfenster auf innerhalb des Arbeitsbereichs ein. Wenn dieses Flag nicht festgelegt ist, ist das Popupfenster nur auf den Arbeitsbereich beschränkt, wenn sich der Eingabepunkt innerhalb des Arbeitsbereichs befindet. Weitere Informationen finden Sie in den Membern rcWork und rcMonitor der MONITORINFO-Struktur .

[in, optional] excludeRect

Typ: RECT*

Ein Zeiger auf eine Struktur, die das Ausschlussrechteck angibt. Es kann NULL sein.

[out] popupWindowPosition

Typ: RECT*

Ein Zeiger auf eine Struktur, die die Popupfensterposition angibt.

Rückgabewert

Typ: BOOL

Wenn die Funktion erfolgreich ist, gibt sie TRUE zurück. Andernfalls wird FALSE zurückgegeben. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

TPM_WORKAREA wird für die Funktionen TrackPopupMenu und TrackPopupMenuEx unterstützt.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winuser.h (windows.h einschließen)
Bibliothek User32.lib
DLL User32.dll

Weitere Informationen

Referenz

Trackpopupmenu

TrackPopupMenuEx