【发布时间】:2020-07-10 03:53:40
【问题描述】:
如果我这样做CRgn::CreateEllipticRgn(0, 0, 120, 120);,结果会在右侧和底部缩短两个像素。这是为什么?我想可能是因为一个区域在轮廓内而不是在轮廓上,但在这种情况下,它应该是整个圆圈周围的 1 个像素边框,而不是右侧和底部的 2 个像素边框。有什么想法吗?
TIA!!
【问题讨论】:
-
left 和 top 包含在 bounds 中,right 和 bottom 不包含。这样,长度(左右)和高度(底部)更容易预测和计算。 left=0 right=120 是 120 像素宽。 left=1 right=121 是 120 像素宽。这就是矩形在 Windows 中的工作方式。
-
我知道 RECT 是这样做的,但由于它是 x2 和 y2,因此您希望包含这一点。测试 gdi+,它确实包括点(0,0 到 0,2),给出 3 个像素。我的主要问题是将 GDI 与 GDI+ 混合在一起,但事情并没有排成一行,我转向所有 GDI+,现在它排成一行。