我从数据库中读出位图想加载在CImageList中并将CImageList与ListControl控件相关联,可是为啥显示不出来。
请问为啥,怎么改?

解决方案 »

  1.   

    使用 CImageList::Draw( CDC* pdc, int nImage, POINT pt, UINT nStyle );可以显示。CImageList m_imgList;
    m_imgList.Create(53, 72, ILC_COLOR24, 28, 4);
    HBITMAP hBitmap = (HBITMAP) LoadImage(NULL, “image.bmp”, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
    CBitmap*   m_pBitmap;
        if (hBitmap)
        {
            m_pBitmap = new CBitmap;
            m_pBitmap->Attach(hBitmap);
            m_imgList.Add(m_pBitmap, RGB(0,0,0));
        }m_imgList.Draw(pDC, 0/*index*/, CPoint(0,0), ILD_NORMAL);
      

  2.   

    最简单的使用流程:
    1.声明
      CImageList          m_ilTreeImages;
    2.创建
      m_ilTreeImages.Create(16,16,ILC_COLOR8,5,5);
    3.添加图标
      m_ilTreeImages.Add(AfxGetApp()->LoadIcon(IDR_MAINFRAME));
    4.关联控件
      SetImageList(&m_ilTreeImages,TVSIL_NORMAL);
    5.设置显示图标
      SetItemImage
      

  3.   

    数据库里 怎么添加图片啊 ?access里可以么  ?
      

  4.   

    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个选择项
      

  5.   

    参考:http://www.codeproject.com/KB/combobox/Simple_Thumbnail_Listview.aspx
    看它里面得具体实现。
    或者干脆直接用它的那个类!