极其怪异!同一矩形,经过LPtoDP转换后输出的结果却不同,请大侠指教,该如何解决
极其怪异!同一矩形,经过LPtoDP转换后输出的结果却不同,请大侠指教
遇到个极其不理解的问题:
CClientDC dc(this);
OnPrepareDC(&dc);
断点跟踪过程中
发现同一个矩形参数(top=-3200 bottom=-4300 left=-3200 right=-2800)
经OffsetRect(50000, -50000)后
都变成了(top=-53200 bottom=-54300 left=46800 right=47200)
但是
经dc.LPtoDP转换后就有了不同的结果
第一次为(top=422 bottom=458 left=250 right=262)
第二次为(top=2022 bottom=2058 left=1850 right=1862)
正好都差了1600
这是怎么回事呢
请大侠指教
急用
谢谢
------解决方案--------------------
没有看明白,说清楚一点。
------解决方案--------------------
可能情况有:
一:LPtoDP前没有初始化矩形;
二:是不是连续两次调用了LPtoDP,当然结果会不同。
------解决方案--------------------
你在OnPrepareDC中设置了映射模式SetMapMode()和SetViewport...、SetWindow...,是不是没有恢复?
遇到个极其不理解的问题:
CClientDC dc(this);
OnPrepareDC(&dc);
断点跟踪过程中
发现同一个矩形参数(top=-3200 bottom=-4300 left=-3200 right=-2800)
经OffsetRect(50000, -50000)后
都变成了(top=-53200 bottom=-54300 left=46800 right=47200)
但是
经dc.LPtoDP转换后就有了不同的结果
第一次为(top=422 bottom=458 left=250 right=262)
第二次为(top=2022 bottom=2058 left=1850 right=1862)
正好都差了1600
这是怎么回事呢
请大侠指教
急用
谢谢
------解决方案--------------------
没有看明白,说清楚一点。
------解决方案--------------------
可能情况有:
一:LPtoDP前没有初始化矩形;
二:是不是连续两次调用了LPtoDP,当然结果会不同。
------解决方案--------------------
你在OnPrepareDC中设置了映射模式SetMapMode()和SetViewport...、SetWindow...,是不是没有恢复?