Compartir a través de


Función CalculatePopupWindowPosition (winuser.h)

Calcula una posición de ventana emergente adecuada mediante el punto de anclaje, el tamaño de ventana emergente, las marcas y el rectángulo de exclusión opcional. Cuando el tamaño de ventana emergente especificado sea menor que el tamaño de la ventana de escritorio, use la función CalculatePopupWindowPosition para asegurarse de que la ventana emergente esté totalmente visible en la ventana de escritorio, independientemente del punto de anclaje especificado.

Sintaxis

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

Parámetros

[in] anchorPoint

Tipo: const POINT*

Punto de delimitador especificado.

[in] windowSize

Tipo: const SIZE*

Tamaño de ventana especificado.

[in] flags

Tipo: UINT

Use una de las siguientes marcas para especificar cómo la función coloca la ventana emergente horizontal y verticalmente. Las marcas son las mismas que las marcas de posicionamiento vertical y horizontal de la función TrackPopupMenuEx .

Use una de las siguientes marcas para especificar cómo la función coloca horizontalmente la ventana emergente.

Value Significado
TPM_CENTERALIGN
0x0004L
Centra la ventana emergente horizontalmente con respecto a la coordenada especificada por el parámetro anchorPoint-x>.
TPM_LEFTALIGN
0x0000L
Coloca la ventana emergente para que su borde izquierdo esté alineado con la coordenada especificada por el parámetro anchorPoint-x>.
TPM_RIGHTALIGN
0x0008L
Coloca la ventana emergente para que su borde derecho esté alineado con la coordenada especificada por el parámetro anchorPoint-x>.
 

Usa una de las siguientes marcas para especificar cómo la función coloca verticalmente la ventana emergente.

Value Significado
TPM_BOTTOMALIGN
0x0020L
Coloca la ventana emergente para que su borde inferior esté alineado con la coordenada especificada por el parámetro anchorPoint-y>.
TPM_TOPALIGN
0x0000L
Coloca la ventana emergente para que su borde superior esté alineado con la coordenada especificada por el parámetro anchorPoint-y>.
TPM_VCENTERALIGN
0x0010L
Centra verticalmente la ventana emergente en relación con la coordenada especificada por el parámetro anchorPoint-y>.
 

Use una de las marcas siguientes para especificar si se va a dar cabida a la alineación horizontal o vertical.

Value Significado
TPM_HORIZONTAL
0x0000L
Si la ventana emergente no se puede mostrar en la ubicación especificada sin superponer el rectángulo excluido, el sistema intenta acomodar la alineación horizontal solicitada antes de la alineación vertical solicitada.
TPM_VERTICAL
0x0040L
Si la ventana emergente no se puede mostrar en la ubicación especificada sin superponer el rectángulo excluido, el sistema intenta acomodar la alineación vertical solicitada antes de la alineación horizontal solicitada.
 

La marca siguiente está disponible a partir de Windows 7.

Value Significado
TPM_WORKAREA
0x10000L
Restringe la ventana emergente a dentro del área de trabajo. Si no se establece esta marca, la ventana emergente se restringe al área de trabajo solo si el punto de entrada está dentro del área de trabajo. Para obtener más información, consulte los miembros rcWork y rcMonitor de la estructura MONITORINFO .

[in, optional] excludeRect

Tipo: RECT*

Puntero a una estructura que especifica el rectángulo exclude. Puede ser NULL.

[out] popupWindowPosition

Tipo: RECT*

Puntero a una estructura que especifica la posición de la ventana emergente.

Valor devuelto

Tipo: BOOL

Si la función se ejecuta correctamente, devuelve TRUE; de lo contrario, devuelve FALSE. Para obtener información de error extendida, llame a GetLastError.

Comentarios

TPM_WORKAREA se admite para las funciones TrackPopupMenu y TrackPopupMenuEx .

Requisitos

   
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluya Windows.h)
Library User32.lib
Archivo DLL User32.dll

Consulte también

Referencia

TrackPopupMenu

TrackPopupMenuEx