我自己做了一个类CMyWnd:public  CFrameWnd  我在里面作图。用到了水平滚动条。  
可是我不知道该如何编写OnHScroll事件。(我自己编写的在滚动后不能显示被覆盖区域)  
请各位帮忙!

解决方案 »

  1.   

    你可以从appwizard中建立一个SDI在最后一步从CScrollView里派生,而不是缺省的CView,看看它的代码
    估计是你的消息映射宏没有写对
      

  2.   

    关键是InvalidateRect(rect,FALSE);的rect要传递一个合适的参数,必须先计算滚动条的位置。不过一般作图的代码都是写在视图类里的,从CScrollView派生不就得了!
      

  3.   

    准确的说是CView的滚动问题,从CScrollView类派生视图
      

  4.   

    全局搜索CView,然後把它全部替換為CScrollView
      

  5.   

    可是我没有用到View呀。我只建了一个框架CMyWnd,一定要再建立一个View吗?怎么建?
      

  6.   

    不用,建框架的时候就帮你建立了一个view,不过它默认的是CView,我猜想可以修改
    CCreateContext中的成员来实现从CSrollView创建
      

  7.   

    By the way,你的框架是用CreateNewFrame()创建出来的吗?
      

  8.   

    再补充一下,真要自己做滚动条,可以参考《windows程序设计》第四章
      

  9.   

    使用的是CFrameWnd::Create()建立框架的。是自己建立的,没有指定CCreateContext的内容。