MFC如何修改ListBox的数据

近来在学MFC,使用了ListBox控件显示数据,通过自己实践加网上查阅资料,初步掌握了其使用。在此主要记录如何修改其中的数据。

(1)如何修改数据

ListBox修改数据需要取出要修改的词条,删除,然后重新添加一个新的词条。例如:

CListBox *pList = (CListBox*)GetDlgItem(IDC_LISTBOX); //获取控件指针  
int nIdex = pList->GetCurSel(); //获取鼠标选中条目
pList->DeleteString(nIdex);  //删除该条目
CString str;
pList->InsertString(nIdex,str);//插入str

此外,值得注意的是,如果要删除很多条目,而且注重顺序的话。一定要从大序号往小序号开始删,例如原始数据有1~40条,要删除1~5条,那就是先删5,再删4...最后删1。如果从1开始删,1删除后,条目只剩下39条,此时再删2对应着就是原来的3了,因此条目2会保留,最终导致删除错误。

(2)如何保证在修改数据时界面不一直刷新

问题就是在修改数据时,控件会一直刷新,界面不断闪烁,看着很不舒服。

解决办法就是修改数据前,禁止控件刷新,修改完成后,再刷新一次。

m_ListBox.LockWindowUpdate();//禁止本listbox刷新。
//添加数据
    for(int i=0;i<9999;i++)
    {
         m_ListBox.AddString("Test");
    } 
m_ListBox.UnlockWindowUpdate();

猜你喜欢

转载自blog.csdn.net/mingtian715/article/details/80140723