1、本人用的VS2015
2、新建了文档窗口视图标准框架,视图类继承CScrollView类
3、在OnInitialUpdate()函数中初始化了关于滚动条的各个参数
4、在我自己的视图类添加了OnHScroll(nSBCode, nPos, pScrollBar)消息处理函数,在里面进行水平滚动条编辑,然后问题来了
这是默认的消息处理函数,里面有基类的处理函数
void CscrollbarView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CScrollView::OnVScroll(nSBCode, nPos, pScrollBar);
}
我没有管这个基类处理函数,编程用scrollwindow()进行滚动更新,发现每次滚动量长度是我设置的2倍,导致画面撕裂。
几经查找才发现我自己滚动了一次画面,这个基类的CScrollView::OnVScroll(nSBCode, nPos, pScrollBar);也滚动了一次画面,屏蔽了这个函数后一切恢复正常。
我就问这个基类函数在这有啥用,它自带了哪些功能,如何避免重复工作。
2、新建了文档窗口视图标准框架,视图类继承CScrollView类
3、在OnInitialUpdate()函数中初始化了关于滚动条的各个参数
4、在我自己的视图类添加了OnHScroll(nSBCode, nPos, pScrollBar)消息处理函数,在里面进行水平滚动条编辑,然后问题来了
这是默认的消息处理函数,里面有基类的处理函数
void CscrollbarView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CScrollView::OnVScroll(nSBCode, nPos, pScrollBar);
}
我没有管这个基类处理函数,编程用scrollwindow()进行滚动更新,发现每次滚动量长度是我设置的2倍,导致画面撕裂。
几经查找才发现我自己滚动了一次画面,这个基类的CScrollView::OnVScroll(nSBCode, nPos, pScrollBar);也滚动了一次画面,屏蔽了这个函数后一切恢复正常。
我就问这个基类函数在这有啥用,它自带了哪些功能,如何避免重复工作。