如题.拖动时,scrollbar在新pos上停留1秒后,自动跑到0位置
BOOL OnSize(WPARAM wParam, LPARAM lParam)
{
RECT rcClient;
GetClientRect(m_hwnd,&rcClient);
MoveWindow(m_homepage1->m_hwnd,0,0,rcClient.right,rcClient.bottom,TRUE);
SCROLLINFO si;
memset(&si,0,sizeof(SCROLLINFO));
si.cbSize=sizeof(SCROLLINFO);
si.fMask=SIF_RANGE | SIF_PAGE;
si.nMax=m_max;
si.nPage=rcClient.bottom;
SetScrollInfo(m_hwnd,SB_VERT,&si,TRUE); return 0;
}BOOL OnVScroll(WPARAM wParam,LPARAM lParam)
{
SCROLLINFO si;
memset(&si,0,sizeof(SCROLLINFO));
si.cbSize=sizeof(SCROLLINFO);
si.fMask=SIF_RANGE | SIF_PAGE | SIF_POS;
GetScrollInfo(m_hwnd,SB_VERT,&si); int newPos=0;
switch(LOWORD(wParam))
{
case SB_LINEUP:
newPos=si.nPos-1;
break;
case SB_LINEDOWN:
newPos=si.nPos+1;
break;
case SB_PAGEUP:
newPos=si.nPos-si.nPage;
break;
case SB_PAGEDOWN:
newPos=si.nPos+si.nPage;
break;
case SB_THUMBPOSITION:
newPos=HIWORD(wParam);
break;
}
if(newPos == si.nPos)
return 0;
if(newPos<0)
newPos=0;
if(newPos>si.nMax-(si.nPage-1))
newPos=si.nMax-(si.nPage-1); ScrollWindowEx(m_hwnd,0,-(newPos-si.nPos),NULL,NULL,NULL,NULL,SW_INVALIDATE);
UpdateWindow(m_hwnd);
UpdateWindow(m_homepage1->m_hwnd); SetScrollPos(m_hwnd,SB_VERT,newPos,TRUE);
return 0;
}