【发布时间】:2012-07-07 20:37:48
【问题描述】:
我正在勾搭CreateDialogIndirectParam。我想对对话框进行一些操作,但是宽度、高度以及 x 和 y 位置都以对话框为单位。有人可以解释如何将它们转换为屏幕坐标吗?
提前致谢。
【问题讨论】:
标签: c++ windows winforms dialog gdi
我正在勾搭CreateDialogIndirectParam。我想对对话框进行一些操作,但是宽度、高度以及 x 和 y 位置都以对话框为单位。有人可以解释如何将它们转换为屏幕坐标吗?
提前致谢。
【问题讨论】:
标签: c++ windows winforms dialog gdi
试试MapDialogRect() 功能。我认为它符合您的想法。
请记住,映射取决于对话框使用的字体,因此HWND 必须是那个特定的对话框。
同样来自GetDialogBaseUnits():
pixelX = MulDiv(templateunitX, baseunitX, 4);
pixelY = MulDiv(templateunitY, baseunitY, 8);
作为baseunitX 的值tmAveCharWidth 和baseUnitY 的值tmHeight 由函数GetTextMetrics() 返回。您只需要一个 HDC 并选择对话框字体。
【讨论】: