void CScrollBarDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) {int nCurrentPos=0;
switch(nSBCode)
{
case SB_THUMBTRACK:
nCurrentPos=nPos;
break;
case SB_THUMBPOSITION:
nCurrentPos=nPos;
break;
case SB_LINEUP:
nCurrentPos--;
break;
case SB_LINEDOWN:
nCurrentPos++;
break;
case SB_PAGEUP:
nCurrentPos-=5;
break;
case SB_PAGEDOWN:
nCurrentPos+=5;
break;
}
pScrollBar->SetScrollPos(nCurrentPos);}
//用这段代码不能实现滚动条的滚动,左键放开后,滚动条置0
int nCurrentPos=0;
switch(nSBCode)
{
case SB_THUMBTRACK:
case SB_THUMBPOSITION:
pScrollBar->SetScrollPos(nPos);
break;
case SB_LINEUP:
pScrollBar->SetScrollPos(nCurrentPos-1);
break;
case SB_LINEDOWN:
pScrollBar->SetScrollPos(nCurrentPos+1);
break;
case SB_PAGEUP:
pScrollBar->SetScrollPos(nCurrentPos-5);
break;
case SB_PAGEDOWN:
pScrollBar->SetScrollPos(nCurrentPos+5);
break;
}
//这段代码就能够实现,真是百思不得其解
switch(nSBCode)
{
case SB_THUMBTRACK:
nCurrentPos=nPos;
break;
case SB_THUMBPOSITION:
nCurrentPos=nPos;
break;
case SB_LINEUP:
nCurrentPos--;
break;
case SB_LINEDOWN:
nCurrentPos++;
break;
case SB_PAGEUP:
nCurrentPos-=5;
break;
case SB_PAGEDOWN:
nCurrentPos+=5;
break;
}
pScrollBar->SetScrollPos(nCurrentPos);}
//用这段代码不能实现滚动条的滚动,左键放开后,滚动条置0
int nCurrentPos=0;
switch(nSBCode)
{
case SB_THUMBTRACK:
case SB_THUMBPOSITION:
pScrollBar->SetScrollPos(nPos);
break;
case SB_LINEUP:
pScrollBar->SetScrollPos(nCurrentPos-1);
break;
case SB_LINEDOWN:
pScrollBar->SetScrollPos(nCurrentPos+1);
break;
case SB_PAGEUP:
pScrollBar->SetScrollPos(nCurrentPos-5);
break;
case SB_PAGEDOWN:
pScrollBar->SetScrollPos(nCurrentPos+5);
break;
}
//这段代码就能够实现,真是百思不得其解
pScrollBar->SetScrollPos(nCurrentPos); 这是nCurrentPos 为0
但下面一段代码不执行任何有意义的动作,如果将上面一段代码中加入一个
default:
return; //注意是返回
你就得到完全一样的效果了。
case SB_THUMBPOSITION: