电子白板浏览文档需要把滚动条往下拉,才能看到完整的内容。于是我建立了一个基于CScrollView的CWBView类,利用OnVScroll方法得到滚动条的位置参数,并发送出去,现在问题是接收到这个参数后怎么控制CScrollBar的位置?是这样写吗?
void CWBView::OnScrollPosView()
{
int npos = m_pViewParam->npos;//接收参数值
//以下不知怎么写,乱写了两行,
CScrollBar* pBar = GetScrollBarCtrl(SB_VERT);
pBar->SetScrollPos(npos);
}
请教高手。谢谢!!
void CWBView::OnScrollPosView()
{
int npos = m_pViewParam->npos;//接收参数值
//以下不知怎么写,乱写了两行,
CScrollBar* pBar = GetScrollBarCtrl(SB_VERT);
pBar->SetScrollPos(npos);
}
请教高手。谢谢!!
int npos = m_pViewParam->npos;
SetScrollPos(SB_VERT,npos, TRUE);
但又出现另一个问题,滚动条会自动回滚,还有视图里面的内容不会动。
//CScrollBar m_vBar;
//ScrollBar m_vBar in dialog
void CScrollBitmapDlg::OnVScroll(UINT nSBCode,UINT nPos,CScrollBar *pScrollBar)
{// TODO: Add your message handler code here and/or call default
// for focus not jumpping
GetDlgItem(IDOK)->SetFocus();
// scrolling
switch (nSBCode)
{
case SB_LINEUP:
case SB_PAGEUP:
if(m_Sourcey >=10) m_Sourcey -= 10;
else m_Sourcey = 0;
break;
case SB_LINEDOWN:
case SB_PAGEDOWN:
if((m_Sourcey+m_rcPicture.Height()+10)<m_bmInfo.bmHeight)
m_Sourcey += 10;
else
m_Sourcey = m_bmInfo.bmHeight -m_rcPicture.Height();
break;
case SB_TOP:
m_Sourcey = 0;
break;
case SB_BOTTOM:
m_Sourcey = INT_MAX;
break;
case SB_THUMBTRACK:
m_Sourcey = nPos;
break;
}
m_vBar.SetScrollPos(m_Sourcey);
InvalidateRect(&m_rcPicture,FALSE);
CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}