1

有人可以解释一下如何将对话框单位转换为屏幕坐标值?我看到有 MapDialogRect 函数,但它转换 RECT,我想将 x,y 和 cx,cy 值转换为屏幕坐标值,我真的不明白如何实现这一点。

提前致谢。

4

1 回答 1

7

如果您已经有一个窗口句柄,那么只需使用MapDialogRect函数。正如其他人所指出的,MapDialogRect需要 a RECT,所以如果你没有 a RECT,你可以创建一个。

RECT rc;
rc.left = x;
rc.top = y;
rc.right = x + cx;
rc.bottom = y + cy;
MapDialogRect(hdlg, &rc);

如果您的问题是您首先没有对话框句柄,那么该MapDialogRect函数的文档会告诉您如何执行计算:确定对话框的平均字符尺寸(文档调用baseunitXbaseunitY)然后将其代入公式。

请注意,这会计算对话框的客户矩形。您仍然必须添加非客户空间。目前尚不清楚您要做什么,所以我不知道添加非客户端空间是否合适。

于 2012-07-24T13:06:39.793 回答