天天看點

CListCtrl在SetImageList之後,如何去掉圖像;;如何改變ClistCtrl行高

有時候在程式中需要動态的讓CListCtrl顯示或不顯示前面的圖像。

通常設定圖像可以這樣:

        CImageList ImageList;

        ImageList.Create(IDB_AFFIX, 16, ILC_MASK, RGB(255, 255, 255));

        m_list_ctrl.SetImageList(&ImageList,LVSIL_SMALL);   

        ImageList.Detach();

那麼當想要隐藏圖像的時候怎麼做呢,由于windows沒有提供相關方法。那麼可以采用一種巧妙的方式:設定一個小的圖像,這樣看起來跟沒有也差不多。

        CImageList ImageList;

        ImageList.Create(1, 16, ILC_COLOR, 1, 1); // 大小不能設定為0,尤其高度不能設定為很小的數字,因為圖像要保持與listctrl行高一緻,是以高度仍要用正常的。

        m_list_ctrl.SetImageList(&ImageList,LVSIL_SMALL);   

        ImageList.Detach();