m_pUserID是CListBox类,
for(int i = 0; i <m_pUserID.GetCount();i++){
    m_pUserID.DeleteString( i )
}为什么没有把m_pUserID里面的删除完,好像只删除了偶数列,为什么?

解决方案 »

  1.   

    while(m_pUserID.GetCount()!=0)
    m_pUserID.DeleteString(0);
      

  2.   

    int nCount = m_pUserID.GetCount();
    for ( int i = 0; i < nCount; i++ )
    {
        m_pUserID.DeleteString( i )
    }
      

  3.   

    稍加改动:
    for(int i = 0; i <m_pUserID.GetCount();i++){
        m_pUserID.DeleteString( 0 );//将此处的i改为0
    }
      

  4.   

    不对,不对,应该是(头晕了):
    int nCount = m_pUserID.GetCount();
    for ( int i = 0; i < nCount; i++ )
    {
        m_pUserID.DeleteString( 0 );
    }或者写:m_pUserID.ResetContent( );
      

  5.   

    你删了一个,m_pUserID.GetCount(), 变小
      

  6.   

    for(int i = 0; i <m_pUserID.GetCount();i++){
        m_pUserID.DeleteString( i )
    }
    解释如下:
    假设index = 0     string =  a
                1            =  b当你按索引号删除0时,在你的listbox中就只剩下1个,那么这个时候它的索引号就变为了0。
    所以,不能够这样循环删除所有的。可以这样:
    使用API:void ResetContent( );
    也可以:while( m_pUserID.DeleteString(0) != LB_ERR );
      

  7.   

    你的m_pUserID的内容在不断的变啊!
    你看看你的循环,当i = 0时删除第0个,此时原来的第1个变成了第0个,第2个变成了第1个,所以当i=1时,删除了原先的第2个,所以,好像只删除了偶数列
      

  8.   

    你的m_pUserID.GetCount()是不断变化的,所以要写在前面,不能写在循环中
      

  9.   

    m_pUserID.GetCount();你删完一列,这个值可是在变哟~~
      

  10.   

    m_pUserID.ResetContent( );
    完事
      

  11.   


    for(int i = 0; i <m_pUserID.GetCount();i++){
        m_pUserID.DeleteString( i )
    }//
    前面也讲了, m_pUserID.GetCount(); 这个值随着一个个得删除是不停的变化的,结果当然只是删除了一部分,没有全部删除掉.