有人可以解释一下如何将对话框单位转换为屏幕坐标值?我看到有 MapDialogRect 函数,但它转换 RECT,我想将 x,y 和 cx,cy 值转换为屏幕坐标值,我真的不明白如何实现这一点。
提前致谢。
有人可以解释一下如何将对话框单位转换为屏幕坐标值?我看到有 MapDialogRect 函数,但它转换 RECT,我想将 x,y 和 cx,cy 值转换为屏幕坐标值,我真的不明白如何实现这一点。
提前致谢。
如果您已经有一个窗口句柄,那么只需使用该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
函数的文档会告诉您如何执行计算:确定对话框的平均字符尺寸(文档调用baseunitX
和baseunitY
)然后将其代入公式。
请注意,这会计算对话框的客户矩形。您仍然必须添加非客户空间。目前尚不清楚您要做什么,所以我不知道添加非客户端空间是否合适。