本人建了一个从Clistview继承的view然后在里面写下了下面一段话,
sf是在Doc里定义的对象, int i;
while(true)
{
if(pDoc->sf.StartCapture())
{
ADD(i,pDoc->sf.TimeStamp,pDoc->sf.Protocol,pDoc->sf.srcIP,pDoc->sf.srcPort,pDoc->sf.dstIP,pDoc->sf.dstPort,pDoc->sf.Length); // AfxMessageBox(""); //加上此句话就正确
i++;
}
else continue;
}ADD()如下,
ADD(int i, CString a, CString b, CString c, CString d, CString e, CString f, CString g)
{
CString index;
index.Format("%d",i);
GetListCtrl().InsertItem(i,index,i);
GetListCtrl().SetItemText(i,1,a);
GetListCtrl().SetItemText(i,2,b);
GetListCtrl().SetItemText(i,3,c);
GetListCtrl().SetItemText(i,4,d);
GetListCtrl().SetItemText(i,5,e);
GetListCtrl().SetItemText(i,6,f);
GetListCtrl().SetItemText(i,7,g);
}结果是一运行就死掉了,没有反应,如果把上面// AfxMessageBox("");
的注释去掉,加上AfxMessageBox("");就会在点击对话框后正确显示下一个,否则就会死掉
本人是新来的,分不多,明天要交了,在线等,谢谢大家了!!!!
sf是在Doc里定义的对象, int i;
while(true)
{
if(pDoc->sf.StartCapture())
{
ADD(i,pDoc->sf.TimeStamp,pDoc->sf.Protocol,pDoc->sf.srcIP,pDoc->sf.srcPort,pDoc->sf.dstIP,pDoc->sf.dstPort,pDoc->sf.Length); // AfxMessageBox(""); //加上此句话就正确
i++;
}
else continue;
}ADD()如下,
ADD(int i, CString a, CString b, CString c, CString d, CString e, CString f, CString g)
{
CString index;
index.Format("%d",i);
GetListCtrl().InsertItem(i,index,i);
GetListCtrl().SetItemText(i,1,a);
GetListCtrl().SetItemText(i,2,b);
GetListCtrl().SetItemText(i,3,c);
GetListCtrl().SetItemText(i,4,d);
GetListCtrl().SetItemText(i,5,e);
GetListCtrl().SetItemText(i,6,f);
GetListCtrl().SetItemText(i,7,g);
}结果是一运行就死掉了,没有反应,如果把上面// AfxMessageBox("");
的注释去掉,加上AfxMessageBox("");就会在点击对话框后正确显示下一个,否则就会死掉
本人是新来的,分不多,明天要交了,在线等,谢谢大家了!!!!
加上AfxMessageBox("");
在没添加一行就点下确定,就能正常运行
但去掉,一运行就没反应了
{...
Sleep(100);
}
用线程吧,让界面仍然有机会运行
加上AfxMessageBox(""); 则阻塞,所以就可以看出来在运行,点一下,循环一下
我也看了线程方面的知识,但我没用过,在这样的程序中怎么使用?
在哪开始线程呢?