DDX_LBString(pDX, IDC_LIST1, m_Username);UpdateData();
UINT delstr = 0;
CString str;
CStdioFile fileb(_T("D:\\\\DATAT\\index.dat"),CFile::modeRead);
while(fileb.ReadString(str))
{
if (str==m_Username)
{
((CListBox*)GetDlgItem(IDC_LIST1))->DeleteString(delstr);
break;
}
++delstr;
}
UpdateData(FALSE);例如ListBox里有
1
2
3
4
我想删除2,但是执行完毕以后ListBox里面的项目会变成
1
2
4
UINT delstr = 0;
CString str;
CStdioFile fileb(_T("D:\\\\DATAT\\index.dat"),CFile::modeRead);
while(fileb.ReadString(str))
{
if (str==m_Username)
{
((CListBox*)GetDlgItem(IDC_LIST1))->DeleteString(delstr);
break;
}
++delstr;
}
UpdateData(FALSE);例如ListBox里有
1
2
3
4
我想删除2,但是执行完毕以后ListBox里面的项目会变成
1
2
4
UpdateData();
UINT delstr = 0;
CString str;
CStdioFile fileb(_T("D:\\\\DATAT\\index.dat"),CFile::modeRead);
while(fileb.ReadString(str))
{
if (str==m_Username)
{
delstr = ((CListBox*)GetDlgItem(IDC_LIST1))->FindString(-1,str);
if ( delstr != LB_ERR)
{
((CListBox*)GetDlgItem(IDC_LIST1))->DeleteString(delstr);
break; }
} }
UpdateData(FALSE);
根据你的结果,可能delstr的值可能是2,则把第三行删除了。可能你的index.dat文件的开头有个空行,或其他原因导致,文件中的行跟ListBox中的行对应不上了。