CScrollView和窗口大小

时间:2008-09-29 02:29:15

标签: c++ winapi mfc

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:-1)

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

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

答案 2 :(得分:-1)

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