共用方式為


calculatePopupWindowPosition 函式 (winuser.h)

使用指定的錨點、快顯視窗大小、旗標和選擇性排除矩形,計算適當的快顯視窗位置。 當指定的快顯視窗大小小於桌面視窗大小時,請使用 CalculatePopupWindowPosition 函式來確保無論指定的錨點為何,快顯視窗在桌面視窗上都完全可見。

語法

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

參數

[in] anchorPoint

類型: const POINT*

指定的錨點。

[in] windowSize

類型: const SIZE*

指定的視窗大小。

[in] flags

類型: UINT

使用下列其中一個旗標來指定函式如何水準和垂直放置快顯視窗。 旗標與 TrackPopupMenuEx 函式的垂直和水準定位旗標相同。

使用下列其中一個旗標來指定函式水準定位快顯視窗的方式。

意義
TPM_CENTERALIGN
0x0004L
水準置中快顯視窗,相對於 anchorPoint-x > 參數所指定的座標。
TPM_LEFTALIGN
0x0000L
放置快顯視窗,使其左邊緣與 anchorPoint-x > 參數指定的座標組齊。
TPM_RIGHTALIGN
0x0008L
放置快顯視窗,使其右邊緣對齊 anchorPoint-x > 參數指定的座標。
 

使用下列其中一個旗標來指定函式如何垂直放置快顯視窗。

意義
TPM_BOTTOMALIGN
0x0020L
放置快顯視窗,使其下邊緣與 anchorPoint-y > 參數指定的座標組齊。
TPM_TOPALIGN
0x0000L
放置快顯視窗,使其上邊緣與 anchorPoint-y > 參數指定的座標組齊。
TPM_VCENTERALIGN
0x0010L
將快顯視窗垂直置中,相對於 anchorPoint-y > 參數所指定的座標。
 

使用下列其中一個旗標來指定是否要容納水準或垂直對齊。

意義
TPM_HORIZONTAL
0x0000L
如果在未重迭排除矩形的情況下,無法在指定的位置顯示快顯視窗,則系統會嘗試在要求的垂直對齊之前容納所要求的水準對齊方式。
TPM_VERTICAL
0x0040L
如果無法在未重迭排除矩形的情況下,在指定的位置顯示快顯視窗,系統會嘗試在要求的水準對齊之前容納要求的垂直對齊方式。
 

從 Windows 7 開始,可以使用下列旗標。

意義
TPM_WORKAREA
0x10000L
將快顯視窗限制在工作區內。 如果未設定此旗標,則只有在輸入點位於工作區內時,快顯視窗才會限制為工作區。 如需詳細資訊,請參閱MONITORINFO結構的rcWorkrcMonitor成員。

[in, optional] excludeRect

類型: RECT*

指定排除矩形之結構的指標。 它可以是 Null

[out] popupWindowPosition

類型: RECT*

指定快顯視窗位置之 結構的指標。

傳回值

類型: BOOL

如果函式成功,則會傳回 TRUE;否則會傳回 FALSE。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

TrackPopupMenuTrackPopupMenuEx函式支援TPM_WORKAREA

規格需求

   
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限桌面應用程式]
目標平台 Windows
標頭 winuser.h (包含 Windows.h)
程式庫 User32.lib
Dll User32.dll

另請參閱

參考

TrackPopupMenu

TrackPopupMenuEx