mapDialogRect 函数 (winuser.h)

将指定的对话框单位转换为屏幕单位 (像素) 。 函数将指定的 RECT 结构中的坐标替换为转换后的坐标,从而允许使用结构创建对话框或在对话框中放置控件。

语法

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

参数

[in] hDlg

类型:HWND

对话框的句柄。 此函数仅接受其中一个对话框创建函数返回的句柄;其他窗口的句柄无效。

[in, out] lpRect

类型: LPRECT

指向 RECT 结构的指针,该结构包含要转换的对话框坐标。

返回值

类型: BOOL

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

MapDialogRect 函数假定 RECT 结构中的初始坐标表示对话框单位。 若要将这些坐标从对话框单位转换为像素,函数将检索对话框的当前水平和垂直基单位,然后应用以下公式:


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

如果对话框模板具有 DS_SETFONTDS_SHELLFONT 样式,则基本单位是模板指定的字体中字符的平均宽度和高度(以像素为单位)。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winuser.h (包括 Windows.h)
Library User32.lib
DLL User32.dll
API 集 Windows 10版本 10.0.10 (240 中引入的 ext-ms-win-ntuser-dialogbox-l1-1-2)

请参阅

概念性

对话框

GetDialogBaseUnits

其他资源

矩形

引用