CDC区域大小以逻辑单位表示?

时间:2014-06-17 12:19:29

标签: c++ user-interface visual-studio-2008 mfc gdi

我正在使用函数CDC::Rectangle,它使用逻辑坐标。 但我想知道我绘制的区域有多大,所以我可以绘制10%面积宽度的矩形。

如何从CDC获得坐标系的尺寸?

3 个答案:

答案 0 :(得分:1)

信不信由你,Windows设备上下文不会跟踪它附加的对象的边界。根据具体情况,GetBoundsRect可能会给你一些有用的东西,也可能不会。使用CWnd对象并调用GetClientRect是最可靠的方法。

答案 1 :(得分:0)

使用GetClientRect获取窗口的客户端大小(即窗口的绘图空间)。

答案 2 :(得分:0)

仅当您的映射模式不是MM_TEXT时,逻辑坐标才很重要,在这种情况下,您需要使用CDC::LPtoDP

您应该能够在问题中的链接中使用该示例,除了该 而不是rect.DeflateRect(20, 20);
使用rect.right /= 10; rect.bottom /= 10;