要设置固定数量行数,必须当行数大于设置的行数时,删除最后一行,查看MSDN,DeleteItem为删除行的函数,如下:
现在的问题在于对 DELETEITEMSTRUCT 结构体对象赋值,结构体细节查看MSDN。
直接上函数
#define MaxLineNum 128 // 定义最大行数
void AddListBoxString(CString str)
{
if (MaxLineNum==ListBoxMaxCount)
{
//对DELETEITEMSTRUCT对象赋值
DELETEITEMSTRUCT dStruct;
dStruct.CtlType=ODT_LISTBOX ;
dStruct.CtlID=IDC_LIST_Status; //ListBox ID
dStruct.itemID=nCount-1;
dStruct.hwndItem=m_ListBox.m_hWnd; //ListBox 句柄
dStruct.itemData=m_ListBox.GetItemData(nCount-1);
m_ListBox.DeleteItem(&dStruct);
}
m_ListBox.InsertString(0,str);
}