SCROLLINFO sinfo;
sinfo.cbSize = sizeof(sinfo);
sinfo.fMask = SIF_ALL;
sinfo.nPage = 10;// nPage = -1; 開始沒有那麼多内容不顯示滾動條
sinfo.nMax = 100;
sinfo.nMin = 0;
sinfo.nTrackPos = 0;
sinfo.nPos = 50;
SetScrollInfo(SB_VERT, &sinfo);
SetScrollInfo(SB_HORZ, &sinfo);
voidCScrollTestDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
SCROLLINFOhinfo;
GetScrollInfo(SB_HORZ,&hinfo);
switch(nSBCode)
{
case SB_PAGEUP:
case SB_LINEUP:
if(hinfo.nPos> hinfo.nMin)
hinfo.nPos-= 5;
break;
case SB_PAGEDOWN:
case SB_LINEDOWN:
if(hinfo.nPos< hinfo.nMax)
hinfo.nPos+= 5;
case SB_THUMBTRACK:
case SB_THUMBPOSITION:
hinfo.nPos+= hinfo.nTrackPos - hinfo.nPos;
}
SetScrollInfo(SB_HORZ,&hinfo);
CDialog::OnHScroll(nSBCode,nPos,pScrollBar);
}
voidCScrollTestDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
SCROLLINFOvinfo;
GetScrollInfo(SB_VERT,&vinfo);
if(vinfo.nPos > vinfo.nMin)
vinfo.nPos-= 5;
if(vinfo.nPos < vinfo.nMax)
vinfo.nPos+= 5;
vinfo.nPos+= vinfo.nTrackPos - vinfo.nPos;
SetScrollInfo(SB_VERT,&vinfo);
CDialog::OnVScroll(nSBCode,nPos,pScrollBar);