通过设置对话框的property,为其加上了水平和竖直滚动条/ScrollBar,请问如何取得这两个滚动条的指针??多谢。

解决方案 »

  1.   

    我是选择对话框的property -->style-->vertical scroll,而不是在上面加的
    Scrollbar空间,会对应Id吗?本来想通过OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)控制滚动条,但是不知道怎么取得该指针。CScrollBar *pSBar = this->GetScrollBarCtrl(SB_VERT);pSBar也为NULL,郁闷啊!
      

  2.   

    你用CWnd::SetScrollInfo函数就可以了
      

  3.   

    麻烦说以下SetScrollInfo函数具体怎么用,谢谢!
      

  4.   

    void C**Dlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    int nMinPos;
    int nMaxPos;
    int nOffset = 10;
    GetScrollRange(SB_VERT, &nMinPos, &nMaxPos);
    nMaxPos = GetScrollLimit(SB_VERT);
    int nCurPos = GetScrollPos(SB_VERT); switch(nSBCode) {
    case SB_TOP:// Scroll to far top
             ...
    default:break;
    }
    SetScrollPos(SB_VERT, nCurPos, TRUE);
    CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
    }BOOL C***Dlg::OnInitDialog()
    {
    CDialog::OnInitDialog(); // TODO:  在此添加额外的初始化
    SCROLLINFO info;
    info.cbSize = sizeof(SCROLLINFO);
    info.fMask = SIF_ALL;
    info.nMin = 0;
    info.nMax = 200;
    info.nPage = 5;
    info.nPos = 0;
    info.nTrackPos = 5;
    SetScrollInfo(SB_VERT, &info, true);
    return TRUE;  // return TRUE unless you set the focus to a control
    // 异常: OCX 属性页应返回 FALSE
    }