用m_ListCtrl.SetImageList(&imglist,LVSIL_SMALL);设置显示图片后。
现要将m_ListCtrl恢复成以前状态,去掉图片,应怎么实现?

解决方案 »

  1.   

    把SetImageList的第一个参数设为NULL看看呢
      

  2.   

    设置成NULL后可以去掉图片,就是第一列的文本并没有移到最左边而已
      

  3.   

    把每一个itemtypedef struct _LVITEM { 
        UINT mask;             // 把这其中的LVIF_IMAGE标志去掉
        int iItem; 
        int iSubItem; 
        UINT state; 
        UINT stateMask; 
        LPTSTR pszText; 
        int cchTextMax; 
        int iImage; 
        LPARAM lParam;
    #if (_WIN32_IE >= 0x0300)
        int iIndent;
    #endif
    } LVITEM, FAR *LPLVITEM; 
      

  4.   

    osborn(SEANX):
    我用:v.mask = LVIF_TEXT 
    还是不行。
    我第一次用该控件,实在是搞不定。
    能不能给出实现的代码?
      

  5.   

    呵呵,我刚才想错了(实在很弱智)。我想这主要是控件接受imagelist之后,记下了它的大小,而去掉imagelist之后,没有把这个大小置为0导致的。想到两个办法,但都不太好,供你参考吧!1. 创建另一个大小为1,1的imagelist,m_pImageList->Create(0, 1, TRUE, 1, 1), 把它设置给listctrl。这样和没有差不多。2. 先m_list.DestroyWindow,然后重新m_list.Create, 填入item。
      

  6.   

    应该是m_pImageList->Create(1, 1, TRUE, 1, 1)
      

  7.   

    使用1x1的imagelist的方法,应该是和把imagelist设成NULL的效果一样吧!没有试验过,楼主不妨试验一下.我的想法是:
    1.先将imagelist设为NULL,
    2.删除listview中所有items.
    3.根据原有的条件重新向listview中添加items.