CScrollView和窗口大小
时间:2020-03-06 14:51:30 来源:igfitidea点击:
(MFC问题)确定CScrollView中当前显示的客户区域的最佳方法是什么?我只需要可见部分的大小,因此GetClientRect()在这里不起作用。
解决方案
在OnDraw()函数内部,可以调用pDC-> GetViewportOrg和pDC-> GetViewportExt。
编辑:对不起,我忘记了视口范围仅是比例因子。我同意我们真正需要的是客户。
我们确实需要使用GetClientRect(),但我认为我们在问一个错误的问题。并不是这样,在滚动视图中会有一个很大的物理上滚动的客户端窗口。相反,当我们滚动时,将调整DC的viewportext和映射模式,这似乎使视图看上去比实际的更大。因此,如果要从当前视口的右下角的左上角绘制一条线,则确实需要GetViewPortOrg()和GetViewportExt()。如果这些返回错误的值,则说明我们在使用CScrollView时出现了问题。我们是否致电SetScrollSizes()?
是的,你们都是对的。 GetClientRect正是我所需要的。我的脑子放屁...