翻译coords重新定位对话框?

时间:2012-07-07 20:03:57

标签: c++ windows winforms dialog gdi

我正在挂钩CreateDialogIndirectParam。我想对对话框进行一些操作,但是宽度,高度以及x和y位置都是以对话框为单位。有人可以解释如何将它们转换为屏幕坐标吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

尝试MapDialogRect()功能。我认为它符合你的想法。

请记住,映射取决于对话框使用的字体,因此HWND必须是该特定对话框。

同样来自GetDialogBaseUnits()

pixelX = MulDiv(templateunitX, baseunitX, 4);
pixelY = MulDiv(templateunitY, baseunitY, 8);

baseunitX tmAveCharWidthbaseUnitYtmHeight函数GetTextMetrics()返回的值HDC。您只需要选择对话框字体{{1}}。