用户可以选择添加或者删除CListCtrl中的列

解决方案 »

  1.   

    m_list.InsertColumn(0,"Col 1",LVCFMT_LEFT,300,2); 函数
    添加以后
    Invalidate();看看
      

  2.   

    BOOL DeleteColumn( int nCol );int InsertColumn( int nCol, const LVCOLUMN* pColumn );int InsertColumn( int nCol, LPCTSTR lpszColumnHeading, int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1 );
      

  3.   

    我知道你的意思。、
    1、BOOL DeleteColumn( int nCol );在删除列的时候最好使用
    int nColumnCount = pmyListCtrl->GetHeaderCtrl()->GetItemCount();
    // Delete all of the columns.
    for (int i=0;i < nColumnCount;i++)
    {
       pmyListCtrl->DeleteColumn(0);
    }
    不然删除很有可能会出错。
    2、int InsertColumn( int nCol, LPCTSTR lpszColumnHeading, int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1 );
    也是一样的,如果你已经插入过此列。则回顺序往后推的。并非自己所要的列。综上:1、定义数据列表。缓存数据
    2、每次做插入的之前删除所有数据。在列表内操作之后在顺序插入。
    3、每次删除的时候同样是对列表操作。之后在顺序插入。愚笨之法,仅做参考!
      

  4.   

    DeleteAllItems();
    InsertColumnint nCol, LPCTSTR lpszColumnHeading, int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1 );
    InsertItem(i,strSN,j);
    SetItemText(i,j,strStatoin);
    自己试试吧!