我有一个列表框,问:如何每次给他增加条目后,让它在底部始终显示最近的条目,即让滚动条固定在底部,让内容跟随滚动条。
部分代码如下
LRESULT CFlash_testDlg::OnShowListMessage(WPARAM wPara,LPARAM lPara)
{
CString tmpCnt;
tmpCnt.Format("%d",CPublic::eraseCnt);
int Pos;
Pos=m_list_Erase.InsertItem(CPublic::eraseCnt,tmpCnt);
m_list_Erase.SetItemText(Pos,1,"Erase");
m_list_Erase.SetItemText(Pos,2,"addr");
CPublic::eraseCnt++;
                              //added to make it fixed in the bottom
return TRUE;
}应该有两个问题:1.如何取得列表的滚动条。
                2.如何让条目跟随滚动条。感觉是个很简单的问题,但是时间比较紧,查了半天的资料,没找到,望有人指点下。谢谢了

解决方案 »

  1.   

    获取当前列表象的总数count
    然后设置选中列表象所引为count-1
      

  2.   

    让当前的list选中你添加的item就好了
      

  3.   

    2楼这样不行吧,我试了下,光选中,还是没有办法让它显示在最后。可能我做的不对
    1楼是对的,加上如下一句就可以锁定在最后:
    m_list_Erase.EnsureVisible(m_list_Erase.GetItemCount()-1,TRUE);
    要是能把EnsureVisible给出来就好了,呵呵,我就不用去找了,一开始我还以为你和2楼一样的意思。  
    最后还是谢谢两位