早教吧 育儿知识 作业答案 考试题库 百科 知识分享

listbox的DeleteString函数的一个问题mfc程序,代码是这样的,(其中mlist是ClistBox类型的变量):UpdateData(TRUE);CStringstr="11575.514.23774.26498.16668.9775.17923.19283.256.11526";CStringstrTempsave[10];for(inti=0;

题目详情
list box的DeleteString函数的一个问题mfc程序,代码是这样的,(其中m_list是ClistBox类型的变量): UpdateData(TRUE); CString str="11575.514.23774.26498.16668.9775.17923.19283.256.11526"; CString strTempsave[10]; for(int i=0;i<10;i++) { AfxExtractSubString(strTempsave[i],str,i,'.'); m_list.AddString(strTempsave[i]); } for(int n=0;n<10;n++) { m_list.DeleteString(n); Sleep(20); } UpdateData(FALSE); 将str中的字符串以“.”为标准用AfxExtractSubString函数分割成10段,调用listbox的AddString函数将其分10行显示在list box控件中。想利用DeleteString函数让这10行数据一行一行消失,为了能看清楚消失的过程,在每条语句消失后加了一个sleep函数,企图在一条语句消失后间隔一段时间在让另一条语句消失。可是在程序运行了之后发现,语句只能消失5行,另外的5行仍显示在list box中,而且sleep语句并不是在一条语句消失后间隔几秒再消失另一条,而是在程序运行后整个间隔几秒将5条语句同时消失。请问高手们,这是哪里出了问题??该如何改??真是急死人了!
▼优质解答
答案和解析
其实你这样调用是错误的,删除了5行后列表就只剩下5行了,那里还能删除6-10行? 应该每次删除第一行,或者循环从10递减。 还有睡眠20ms人眼根本不能分辨