我在CListCtrl中一行一行的显示数据,因为数据有很多行,所以生成了滚动条,但是滚动条一直在顶端,只是随着数据行数增多,滚动条不断变短。
    我希望滚动条一直跟着当前最后一行数据停留在低端,应该怎么实现呢~
    谢谢~

解决方案 »

  1.   

    调用CListCtrl的成员函数: 
    m_clcList.EnsureVisible(m_clcList.GetCount()-1);
      

  2.   

    数据填完后m_clcList.EnsureVisible(m_clcList.GetCount()-1);一次
      

  3.   

    你想要这种效果,又想用鼠标随时拖动滚动条进行查看吗?
    这么搞吧:
    (1)在对话框头文件中声明全局变量:BOOL m_bMouseDown;
    (2)重写PreTranslateMessage函数:
    BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
    {
    m_bMouseDown=pMsg->message==WM_MOUSEMOVE && pMsg->wParam==MK_LBUTTON;
    return CDialog::PreTranslateMessage(pMsg);
    }在向m_clcList插入数据的地方添加以下代码:
    if(!m_bMouseDown)
    m_clcList.EnsureVisible(m_clcList.GetCount()-1);