我一直在努力解决非零窗口窗口的裁剪问题,因为我没有意识到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;从实验中,但不知道使用什么标志为视口。
发布于 2012-03-04 22:05:06
您可以使用LPtoDP函数:
LPtoDP函数将逻辑坐标转换为设备坐标。转换取决于设备上下文的映射模式、窗口和视图端口的起源和范围设置以及世界转换。
https://stackoverflow.com/questions/9559107
复制相似问题