极其怪异!同一矩形,经过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...,是不是没有恢复?