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 函式的垂直和水準定位旗標相同。
使用下列其中一個旗標來指定函式水準定位快顯視窗的方式。
值 | 意義 |
---|---|
|
水準置中快顯視窗,相對於 anchorPoint-x > 參數所指定的座標。 |
|
放置快顯視窗,使其左邊緣與 anchorPoint-x > 參數指定的座標組齊。 |
|
放置快顯視窗,使其右邊緣對齊 anchorPoint-x > 參數指定的座標。 |
使用下列其中一個旗標來指定函式如何垂直放置快顯視窗。
值 | 意義 |
---|---|
|
放置快顯視窗,使其下邊緣與 anchorPoint-y > 參數指定的座標組齊。 |
|
放置快顯視窗,使其上邊緣與 anchorPoint-y > 參數指定的座標組齊。 |
|
將快顯視窗垂直置中,相對於 anchorPoint-y > 參數所指定的座標。 |
使用下列其中一個旗標來指定是否要容納水準或垂直對齊。
值 | 意義 |
---|---|
|
如果在未重迭排除矩形的情況下,無法在指定的位置顯示快顯視窗,則系統會嘗試在要求的垂直對齊之前容納所要求的水準對齊方式。 |
|
如果無法在未重迭排除矩形的情況下,在指定的位置顯示快顯視窗,系統會嘗試在要求的水準對齊之前容納要求的垂直對齊方式。 |
從 Windows 7 開始,可以使用下列旗標。
值 | 意義 |
---|---|
|
將快顯視窗限制在工作區內。 如果未設定此旗標,則只有在輸入點位於工作區內時,快顯視窗才會限制為工作區。 如需詳細資訊,請參閱MONITORINFO結構的rcWork和rcMonitor成員。 |
[in, optional] excludeRect
類型: RECT*
指定排除矩形之結構的指標。 它可以是 Null。
[out] popupWindowPosition
類型: RECT*
指定快顯視窗位置之 結構的指標。
傳回值
類型: BOOL
如果函式成功,則會傳回 TRUE;否則會傳回 FALSE。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
TrackPopupMenu和TrackPopupMenuEx函式支援TPM_WORKAREA。
規格需求
最低支援的用戶端 | Windows 7 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包含 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |
另請參閱
參考