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
アンカーPoint-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 構造体の rcWork メンバーと rcMonitor メンバーを参照してください。

[in, optional] excludeRect

種類: RECT*

除外する四角形を指定する構造体へのポインター。 NULL を指定できます。

[out] popupWindowPosition

種類: RECT*

ポップアップ ウィンドウの位置を指定する構造体へのポインター。

戻り値

種類: BOOL

関数が成功すると、 TRUE が返されます。それ以外の場合は、 FALSE を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

TPM_WORKAREA は、 TrackPopupMenu 関数と TrackPopupMenuEx 関数でサポートされています。

要件

   
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll

関連項目

参照

TrackPopupMenu

TrackPopupMenuEx