读书人

请问一个关于list control显示 的有关

发布时间: 2013-11-16 23:15:33 作者: rapoo

请教一个关于list control显示 的问题,谢谢
我在一个for循环里给一个list control添加数据,这个for循环执行时间比较长,每次都得等for循环完了以后list control才显示完全的内容,我想要list control每加一条就显示出来,请问有什么办法,谢谢大家了


void CTESTDlg::InsertListInfo(CString Ip, CString MacAddress, CString HostName)
{
//获取当前的记录条数.
int nIndex = m_list.GetItemCount();
LV_ITEM lvItem;
lvItem.mask = LVIF_TEXT ;
lvItem.iItem = nIndex; //行数
lvItem.iSubItem = 0;
lvItem.pszText = (LPSTR)(LPCTSTR)Ip;
//在最后一行插入记录值.
m_list.InsertItem(&lvItem);
//设置该行的其他列的值.
m_list.SetItemText(nIndex, 1, MacAddress);

}

[解决办法]
重新创建一个线程,将数据的插入过程放在线程中进行。
[解决办法]
这个是for循环阻塞UI线程了,你可以创建个线程来解析,每解析完毕一条postmessage给主线程,由主线程添加。
[解决办法]
线程中发送消息给UI线程来控制ListCtrl添加Item

读书人网 >VC/MFC

热点推荐