首页 新闻 会员 周边

MFC单文档添加滚动条后如何获取左上角的坐标位置?

0
悬赏园豆:40 [已解决问题] 解决于 2014-09-05 12:43

视图区域设为2000*2000,滚动条滚动后通过getscrollposition获取的位置只有当滚动条在最左和最上端的时候才是视图区域左上角的坐标,其他的时候都会有偏差,导致画的图每次都在实际位置的下面,怎么才能获取到当前滚动条滚动到的视图区域的左上角的坐标呢?

Sky_Watcher的主页 Sky_Watcher | 初学一级 | 园豆:120
提问于:2014-09-03 10:18
< >
分享
最佳答案
1

这里涉及到逻辑坐标和设备坐标的转换,当窗口重绘的时候调用了OnprepareDC(具体应该是SetViewPort)重新设置了viewport坐标。所以,当滚动滚动条时,应该是获取viewport的坐标,然后计算出viewport偏移,再加上窗口原点。

收获园豆:40
jello chen | 大侠五级 |园豆:7336 | 2014-09-03 12:44

也就是在获取左上角的坐标点之前,需要重新设置viewport,然后getscrollposition才能获取当前view区域的左上角的坐标?

Sky_Watcher | 园豆:120 (初学一级) | 2014-09-03 13:07

@指尖流连:对,当然,需要调用OnPrepareDC

jello chen | 园豆:7336 (大侠五级) | 2014-09-05 09:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册