视图区域设为2000*2000,滚动条滚动后通过getscrollposition获取的位置只有当滚动条在最左和最上端的时候才是视图区域左上角的坐标,其他的时候都会有偏差,导致画的图每次都在实际位置的下面,怎么才能获取到当前滚动条滚动到的视图区域的左上角的坐标呢?
这里涉及到逻辑坐标和设备坐标的转换,当窗口重绘的时候调用了OnprepareDC(具体应该是SetViewPort)重新设置了viewport坐标。所以,当滚动滚动条时,应该是获取viewport的坐标,然后计算出viewport偏移,再加上窗口原点。
也就是在获取左上角的坐标点之前,需要重新设置viewport,然后getscrollposition才能获取当前view区域的左上角的坐标?
@指尖流连:对,当然,需要调用OnPrepareDC