我有一个列表框,问:如何每次给他增加条目后,让它在底部始终显示最近的条目,即让滚动条固定在底部,让内容跟随滚动条。
部分代码如下
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.如何让条目跟随滚动条。感觉是个很简单的问题,但是时间比较紧,查了半天的资料,没找到,望有人指点下。谢谢了
部分代码如下
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.如何让条目跟随滚动条。感觉是个很简单的问题,但是时间比较紧,查了半天的资料,没找到,望有人指点下。谢谢了
然后设置选中列表象所引为count-1
1楼是对的,加上如下一句就可以锁定在最后:
m_list_Erase.EnsureVisible(m_list_Erase.GetItemCount()-1,TRUE);
要是能把EnsureVisible给出来就好了,呵呵,我就不用去找了,一开始我还以为你和2楼一样的意思。
最后还是谢谢两位