(MFC问题)确定CScrollView中当前显示的客户区域的最佳方法是什么?我只需要可见部分的大小,因此GetClientRect()在这里不起作用。

有帮助吗?

解决方案

你需要使用GetClientRect(),但我认为你问的是错误的问题。在滚动视图中,有一个非常大的客户端窗口是物理滚动的。相反,当您滚动时,DC的视口文本和映射模式会被调整,这使得您的视图看起来比实际大。因此,如果要从当前视口右下角的左上角绘制一条线,则需要GetViewPortOrg()和GetViewportExt()。如果这些返回错误的值,则使用CScrollView时出错。你有没有打电话给SetScrollSizes()?

其他提示

在OnDraw()函数中,您可以调用pDC-> GetViewportOrg和pDC-> GetViewportExt。

编辑:抱歉,我忘记了视口范围只是缩放因子。我同意你真正需要的是客户端矩形。

是的,你是对的。 GetClientRect正是我所需要的。我的脑屁......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top