Report样式的CListView无法滚动到指定行
用WM_VSCROLL来实现Report样式的CListView滚动到指定行(如100行).
::SendMessage(m_hWnd,WM_VSCROLL,MAKEWPARAM(SB_THUMBPOSITION,100),NULL);
不成功。但:
::SendMessage(m_hWnd,WM_VSCROLL,MAKEWPARAM(SB_LINEDOWN,0),NULL);//可以成功下滚1行。
::SendMessage(m_hWnd,WM_VSCROLL,MAKEWPARAM(SB_PAGEDOWN,0),NULL);//可以成功下滚1页。
::SendMessage(m_hWnd,WM_VSCROLL,MAKEWPARAM(SB_BOTTOM,0),NULL);//可以成功滚动到屏底。
但就是滚动不到指定行.
跟踪用鼠标拖滚动条时,进入了WM_VSCROLL消息响应函数4次:
nSBCode = SB_THUMBTRACK , nPos = 0
nSBCode = SB_THUMBTRACK, nPos = 100
nSBCode = SB_ THUMBPOSITION, nPos = 100
nSBCode = SB_ENDSCROLL, nPos = 0
模拟同样的参数发送了四次WM_VSCROLL消息:
::SendMessage(m_hWnd,WM_VSCROLL,MAKEWPARAM(SB_THUMBTRACK,0),NULL);//
::SendMessage(m_hWnd,WM_VSCROLL,MAKEWPARAM(SB_THUMBTRACK,100),NULL);//
::SendMessage(m_hWnd,WM_VSCROLL,MAKEWPARAM(SB_THUMBPOSITION,100),NULL);//
::SendMessage(m_hWnd,WM_VSCROLL,MAKEWPARAM(SB_ENDSCROLL,0),NULL);//
进入了WM_VSCROLL消息响应函数跟踪的结果同上,但就是不滚屏,什么原因呀?