2014-06-17 57 views
0

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

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

+0

只需将宽度除以10即可得到所需的部分宽度,当然仍然以逻辑坐标表示。 – MSalters

+0

@ MSalters,但是当我们有100%时如何确定矩形尺寸(占据所有绘图区域)? – mrgloom

回答

1

不管你信不信,Windows设备上下文不跟踪的边界它所连接的对象。 GetBoundsRect可能会给你一些有用的东西,或者它可能不会,这取决于具体情况。使用CWnd对象并调用GetClientRect是最可靠的方法。

0

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

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