我如何判断当listbox中的内容显示到可视面下面的时候,实现自动滚动

解决方案 »

  1.   

    没有现成的函数:
    1,void GetClientRect( LPRECT lpRect ) const;//先获得listbox窗口客户区的大小
    2,CListBox::GetItemHeight 
    int GetItemHeight( int nIndex ) const;//得到listbox中每一行的高度(要求每一行的高度相同)
    3。用客户区的高度除以每一行的高度得到可视的行数。
    这样,你就可以实现动态滚动了。
      

  2.   

    m_ListBox.SetCurSel(-1);
    m_ListBox.SetCaretIndex(nIndex,TRUE); //Auto scroll