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))即可。

posted @ 2011-08-30 09:47  忆民  阅读(4704)  评论(0编辑  收藏  举报