15,979
社区成员
发帖
与我相关
我的任务
分享
void CNEWDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
if (pScrollBar == &m_DiagramSB)
{
SCROLLINFO si;
si.cbSize = sizeof(si);
si.fMask = SIF_ALL;
pScrollBar->GetScrollInfo(&si, SIF_ALL);
int pos = si.nPos;
switch (nSBCode)
{
case SB_TOP:
pos = 1;
break;
case SB_BOTTOM:
pos = si.nMax;
break;
case SB_ENDSCROLL:
break;
case SB_LINEDOWN:
pos++;
break;
case SB_LINEUP:
pos--;
break;
case SB_PAGEDOWN:
{
if (pos < si.nMax)
pos = min(si.nMax, pos + (int)si.nPage);
}
break;
case SB_PAGEUP:
{
if (pos > si.nMin)
pos = max(si.nMin, pos - (int)si.nPage);
}
break;
case SB_THUMBPOSITION:
pos = nPos,;
break;
case SB_THUMBTRACK:
pos =nPos,;
break;
default:
break;
}
//ZeroMemory(&si, sizeof(si));
si.cbSize = sizeof(si);
si.fMask = SIF_POS;
si.nPos = pos;
pScrollBar->SetScrollInfo(&si);
}
CDialogEx::OnVScroll(nSBCode, nPos, pScrollBar);
// 刷新示意图子窗口
RECT rc;
GetDlgItem(IDC_DIAGRAM)->GetWindowRect(&rc);
ScreenToClient(&rc);
InvalidateRect(&rc, FALSE);
UpdateWindow();
}