zoukankan      html  css  js  c++  java
  • 列表框清屏/CListBox清空

    CListBox自带方法:

    MyListBox->ResetContent();

    CListBox用法:

    关联一个变量m_List,m_List.AddString("test");

    删除一个字符串
    int DeleteString( UINT nIndex );

    例如:

    m_listbox.DeleteString(5);

    插入一个字符串

    int InsertString( int nIndex, LPCTSTR lpszItem);

    例如:

    m_listbox.InsertString(2,L"00-001-00011");

    清空所有项目

    void ResetContent( );

    例如;

    m_listbox.ResetContent();

     其他方法:

    网上查到了这样的方法:  

    while(pmyListBox->GetCount())    
    
    pmyListBox->DeleteString( 0 );

    还查到了这样的方法:

     int nListCount=pMyListBox->GetCount();
    
    for (int i=0;i < nListCount;i++)
    
    {    
    
       pmyListBox->DeleteString(0);//循环次数等于总个数,每次都删除第一个,一样没有清空
    
    }
    
     

    最容易想到的删除方式,的确很简单!错!

    int Count = m_ListBox.GetCount();  
    for (int i=0 ;i<=Count ; i++)  
    
    {  
    
       m_ListBox.DeleteString(i);  
    
    }  

    试想能完全删除ListBox中的所有行记录吗,错,只能删除一半, 为什么?


    正确的删除方法:

    int Count = m_ListBox.GetCount();  
    
    for (int i=Count ;i>=0 ; i--)  
    
    {  
    
        m_ListBox.DeleteString(i);  
    
    }  

    完全删除!
    是否已经明白了呢?


    不难猜想CListBox 在删除一条记录的时候,已经把记录数重新调整过,当你删除第一条后,后面条目的索引值其实已经发生了改变,此时列表中

    的最大索引值变成了Count - 1,当你要删除的序号大于最大索引值时是无法删除成功的!

    CListBox如何正确删除列表中全部内容 - dusulin888的专栏 - CSDN博客 http://blog.csdn.net/dsl_sz/article/details/18088213

  • 相关阅读:
    随手感言
    unity序列化
    unity EditorGUILayer绘制报错
    Json文件的BOM
    unity StrangeIoc
    软件工程实践2017——实践总结
    个人作业——软件产品案例分析
    Gitkraken的使用
    软件工程实践2017——个人技术博客
    UGUI中显示粒子特效
  • 原文地址:https://www.cnblogs.com/wxl845235800/p/7445492.html
Copyright © 2011-2022 走看看