鼠标松开的时候加上SetScrollPos

解决方案 »

  1.   

    tracing(攀登者),我是在OnHScroll消息里面添加的这段代码,鼠标松开我好像找不到这个事件?麻烦你能不能说详细一点?我对VC不熟练,还请你包容一下。还有在点击滚动条的左右按钮时也不能动,(可能是我找不到这两个事件的响应方法),如果方便的话也请你一起告诉我?谢谢了。
      

  2.   

    我是参考下面这篇文章,然后在自己原来的文档/视图上面添加了一个水平和垂直滚动条。
       1、     建立工程时,将 View 类继承自 CScrollView 
    2、     在 OnInitialUpdate 中添加初始化时 Scroll 的相关属性值 
    CSize sizeTotal(0,0); 
    SetScrollSizes(MM_TEXT,sizeTotal); 
    3、     打开文件 ( 图像后 ) 根据图像的大小,设置滚动属性值 
    ChangeScrollRange();   // 自定义函数 
    4、     在 View 类中添加成员变量。 
    作用是存储图像显示位置与原点的 offset 
             int               m_ImgVScrollPos ;                                    //       VScroll distance 
    int               m_ImgHScrollPos ;                                   //       HScroll distance 
    5、     滚动处理 
    添加自定义响应 WM_VSCROLL 、 WM_HSCROLL 消息的事件函数: OnVScroll 、 OnHScroll 
    void CSockIIView :: OnVScroll ( UINT nSBCode , UINT nPos , CScrollBar * pScrollBar ) 

        // TODO: Add your message handler code here and/or call default 
        SCROLLINFO si ; 
        GetScrollInfo ( SB_VERT ,& si , SIF_ALL ); 
        m_ImgVScrollPos = si . nPos ; 
        Invalidate ( TRUE ); 
        CScrollView :: OnVScroll ( nSBCode , nPos , pScrollBar ); } 
      

  3.   

    在Invalidate前面要SetScrollInfo,你只Get了,没有Set,所以又回原位了