我用list control写了一个小程序
然后在某一行的一列中需要插入一个图标
写了代码如下:CImageList m_imagelist;
m_imagelist.Create(13,13,TRUE|ILC_COLOR24,3,1);
CBitmap bm;
bm.LoadBitmap(IDB_OK);
m_imagelist.Add(&bm,RGB(255,0,255));
m_list.SetImageList(&m_imagelist,LVSIL_SMALL);
LV_ITEM lvitem;
lvitem.mask = LVIF_TEXT | LVIF_IMAGE;
lvitem.iItem =i;
lvitem.iSubItem =3;
lvitem.pszText="已成功";
lvitem.iImage=LVIF_IMAGE;
m_list.SetItem(&lvitem);
但是结果是只显示“已成功”图标并不显示 不知道哪里错了 望各位高手大大指教如果要在每一行中都插入一个button,但是功能都是一样的 这个具体怎么实现比较好啊?多多指教hou6^^

解决方案 »

  1.   

    lvitem.iImage=LVIF_IMAGE;//应该是一个数,表示取m_imagelist里的第几个。
      

  2.   

    回复schlafenhamster:
    lvitem.iImage=LVIF_IMAGE;//应该是一个数,表示取m_imagelist里的第几个。 
    厄~ 这个需要怎么赋值啊?
      

  3.   

    vc CListCtrl常用方法public://声明之前拖控件先
    CListCtrl m_listctrlLocalFile;
    CImageList m_imageList;//以下为初始化m_imageList.Create(16, 16, ILC_COLORDDB | ILC_MASK, 5, 1);//icon 16*16最常见 (ILC_MASK使用BMP时才用到,去掉底色用的 (5:初始存放5个图标,1,每次增加1个,这2参数随意,基本没用)m_listctrlLocalFile.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);//行选...
    m_listctrlLocalFile.SetView(3);    
    m_listctrlLocalFile.SetImageList(&m_imageList, LVSIL_SMALL);//绑定ImageListHICON hIcon;
    hIcon = AfxGetApp()->LoadIcon(IDI_FOLDER);
    m_imageList.Add(hIcon);
    hIcon = AfxGetApp()->LoadIcon(IDI_IMAGE);
    m_imageList.Add(hIcon);// 开始使用LVFINDINFO info;
    info.flags = LVFI_PARTIAL|LVFI_STRING; //按字串查找
    info.psz = strFileNameTmp;       //要查找的字串if(m_listctrlLocalFile.FindItem(&info) == -1)//查找方法,如果没有重复,则添加
    {
       m_listctrlLocalFile.InsertItem(m_listctrlLocalFile.GetItemCount(), strFileNameTmp, 1); //最后是图标编号 
    }//实际就是addstring,listctrl没有addm_listctrlLocalFile.DeleteAllItems();//删除所有行
    //当前选择行,成对使用^^
    POSITION pos = m_listctrlServDir.GetFirstSelectedItemPosition(); //多个选择项的头指针
    int nItem = m_listctrlServDir.GetNextSelectedItem(pos);//取第1个选择项
     
      

  4.   


    确实是这里的问题,你把lvitem.iImage = 0 应该就可以了
    这个比如0就是你imagelist里的地一幅图片,以此类推