我一直在努力解决带有非零窗口原点的窗口的剪辑问题,因为我没有意识到SelectClipRgn需要设备单元。
因此我确定了视口原点和窗口原点如下......
POINT VP_Org, WN_Org;
GetViewportOrgEx (dc, VP_Org);
GerWindowOrgEx (dc, WM_Org);
我在逻辑坐标中有一个裁剪区域R,如何将R转换为设备单位以用于定义裁剪区域?
换句话说,我如何转换R以便以下工作。
RECT R;
ClipRgn = CreateRectRgn (R.left, R.top, R.right, R.bottom)
SelectClipRgn (dc, ClipRgn)
我知道它看起来像
R.top = R.top - WN_Org.y +- VP_Org.y;
来自实验,但不知道用于视口的标志。