m_pUserID是CListBox类,
for(int i = 0; i <m_pUserID.GetCount();i++){
m_pUserID.DeleteString( i )
}为什么没有把m_pUserID里面的删除完,好像只删除了偶数列,为什么?
for(int i = 0; i <m_pUserID.GetCount();i++){
m_pUserID.DeleteString( i )
}为什么没有把m_pUserID里面的删除完,好像只删除了偶数列,为什么?
解决方案 »
- 关于OnTimer函数的问题
- 有无现成的日期时间差计算函数?
- 如何得到rebar上的区域!
- 求:《VC技术内幕》第四版(潘爱民译)电子书!
- VC的MFC界面启动时和启动后对检测USB连接
- 放分,顺便问个极度郁闷的问题
- 用SQL语句写查询介于两个时间之间的记录应该怎么写?
- 当一个程序在debug的模式下处failed,在release下却是好的,为什么?/
- 难道真的没人会,我好可怜
- 在写socket程序时出现一个问题,在传递大量的文本信息后(是大量的),接收方只能接收一部分,我已经把接收方和发送方的缓冲区开到很大了,这是怎么回事呢?难道发送过程中会丢掉?
- 请那位给提供用ODBC方法实现修改功能的代码?急.急.急!!!!!!!!!!!!!
- 关于文档视图?
m_pUserID.DeleteString(0);
for ( int i = 0; i < nCount; i++ )
{
m_pUserID.DeleteString( i )
}
for(int i = 0; i <m_pUserID.GetCount();i++){
m_pUserID.DeleteString( 0 );//将此处的i改为0
}
int nCount = m_pUserID.GetCount();
for ( int i = 0; i < nCount; i++ )
{
m_pUserID.DeleteString( 0 );
}或者写:m_pUserID.ResetContent( );
m_pUserID.DeleteString( i )
}
解释如下:
假设index = 0 string = a
1 = b当你按索引号删除0时,在你的listbox中就只剩下1个,那么这个时候它的索引号就变为了0。
所以,不能够这样循环删除所有的。可以这样:
使用API:void ResetContent( );
也可以:while( m_pUserID.DeleteString(0) != LB_ERR );
你看看你的循环,当i = 0时删除第0个,此时原来的第1个变成了第0个,第2个变成了第1个,所以当i=1时,删除了原先的第2个,所以,好像只删除了偶数列
完事
for(int i = 0; i <m_pUserID.GetCount();i++){
m_pUserID.DeleteString( i )
}//
前面也讲了, m_pUserID.GetCount(); 这个值随着一个个得删除是不停的变化的,结果当然只是删除了一部分,没有全部删除掉.