CScrollView的使用
昨天遇到一个问题,把从CView继承的视图类,改成基类为CScrollView。
说明:CScrollView这个类用于需要滚动条的场合。我们可以直接用向导生成,在选择视图类的基类时选择CScrollView即可。
如果我们的程序原来用的是CView类,此时想改成CScrollView类,需要稍微做一下修改。
(1)把类声明中把基类CView改成CScrollView类
(2)利用ClassWizard,在CxxView類別中,建立OnInitialUpdate( ) member function
void CxxView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();
SetScrollSizes(MM_TEXT, CSize( 800, 600 ) );
}
cpp中修改如下代码:
IMPLEMENT_DYNCREATE(CxxView, CScrollView)
BEGIN_MESSAGE_MAP(CxxView, CScrollView)
(3)如果在修改以上代码后,程序产生
其实这个错误只在视图最大化显示出错,原因是:原来是程序启动最大化时,视图ScrollViw出现了一个异常,需要设置SetScrollSizes() or SetScaleToFitSize() 。
解决方法:在类开时处即PreCreateWindow函数中增加SetScrollSizes(MM_TEXT, CSize(0,0))即可。