MapDialogRect 関数 (winuser.h)

指定したダイアログ ボックスの単位を画面単位 (ピクセル) に変換します。 関数は、指定した RECT 構造体の座標を変換された座標に置き換えます。これにより、構造体を使用してダイアログ ボックスを作成したり、ダイアログ ボックス内にコントロールを配置したりできます。

構文

BOOL MapDialogRect(
  [in]      HWND   hDlg,
  [in, out] LPRECT lpRect
);

パラメーター

[in] hDlg

型: HWND

ダイアログ ボックスへのハンドル。 この関数は、ダイアログ ボックス作成関数の 1 つによって返されるハンドルのみを受け入れます。他のウィンドウのハンドルが無効です。

[in, out] lpRect

種類: LPRECT

変換するダイアログ ボックス座標を含む RECT 構造体へのポインター。

戻り値

種類: BOOL

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

MapDialogRect 関数は、RECT 構造体の初期座標がダイアログ ボックスの単位を表していることを前提としています。 これらの座標をダイアログ ボックスの単位からピクセルに変換するために、関数はダイアログ ボックスの現在の水平および垂直方向の基本単位を取得し、次の数式を適用します。


left   = MulDiv(left,   baseunitX, 4);
right  = MulDiv(right,  baseunitX, 4);
top    = MulDiv(top,    baseunitY, 8);
bottom = MulDiv(bottom, baseunitY, 8);

ダイアログ ボックス テンプレートに DS_SETFONT または DS_SHELLFONT スタイルがある場合、基本単位は、テンプレートで指定されたフォント内の文字の平均幅と高さ (ピクセル単位) です。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll
API セット ext-ms-win-ntuser-dialogbox-l1-1-2 (Windows 10 バージョン 10.0.10240 で導入)

関連項目

概念

ダイアログ ボックス

GetDialogBaseUnits

その他のリソース

Rect

参照