如何精确取得ListBox中滚动条的时实位置
展开全部
从CListBox继承一个自己的类CMyListBox,然后重载AddString()
int CMyListBox::AddString(LPCTSTR lpszItem)
{
int iResult = CListBox::AddString(lpszItem);
this->SetCurSel(this->GetCount()-1);
return iResult;
}
然后你的listbox控件用CMylistbox
或者
设置 LVS_SHOWSELALWAYS 风格,始终选择刚添加的条目
m_ListCtrl.SetItemState(nIndex,LVIS_SELECTED,LVIS_SELECTED);
其中 nIndex 就是你刚插入 条目的索引。
然后:
m_ListCtrl.EnsureVisible(nIndex,TRUE);
还有一种方式,每次在listbox中添加数据不用addstring
用
insertstring(0,str);
也就是每次在listbox首部插入string。这样不滚动也可以显示最新的信息。
int CMyListBox::AddString(LPCTSTR lpszItem)
{
int iResult = CListBox::AddString(lpszItem);
this->SetCurSel(this->GetCount()-1);
return iResult;
}
然后你的listbox控件用CMylistbox
或者
设置 LVS_SHOWSELALWAYS 风格,始终选择刚添加的条目
m_ListCtrl.SetItemState(nIndex,LVIS_SELECTED,LVIS_SELECTED);
其中 nIndex 就是你刚插入 条目的索引。
然后:
m_ListCtrl.EnsureVisible(nIndex,TRUE);
还有一种方式,每次在listbox中添加数据不用addstring
用
insertstring(0,str);
也就是每次在listbox首部插入string。这样不滚动也可以显示最新的信息。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询