我写的一个函数void Display(void)可以通过编译,但是不能够正确显示,
void CfrhDlg::Display(void)
{
int nItem;
CStringList dkj;
CString str;
for(int i=0;i<500;i++){
dkj.AddTail("sdgy"+'='+'i');
}
for(int j=0;j<500;j++){
POSITION pos=dkj.GetHeadPosition();
str=dkj.GetNext(pos);
nItem=m_listctrl.InsertItem(j,str);
if(! pos) break;
}
}
请问为什么,该怎么改???谢谢
void CfrhDlg::Display(void)
{
int nItem;
CStringList dkj;
CString str;
for(int i=0;i<500;i++){
dkj.AddTail("sdgy"+'='+'i');
}
for(int j=0;j<500;j++){
POSITION pos=dkj.GetHeadPosition();
str=dkj.GetNext(pos);
nItem=m_listctrl.InsertItem(j,str);
if(! pos) break;
}
}
请问为什么,该怎么改???谢谢
POSITION pos=dkj.GetHeadPosition();
str=dkj.GetNext(pos);
nItem=m_listctrl.InsertItem(j,str);
if(! pos) break;
}
改成:
POSITION pos=dkj.GetHeadPosition();
int j = 0;
while(pos)
{
str=dkj.GetAt(pos);
nItem=m_listctrl.InsertItem(j,str);
dkj.GetNext(pos);
j++;
}
POSITION pos=dkj.GetHeadPosition();应该放在循环体外,不然每次循环都取头结点,得出后面的结点肯定与理想不符