DLG::OnInitDialog()
      .......
      comobox = (CComboBoxEx *)GetDlgItem(IDC_COMBO1);
      AddTheIconToComobo();
      ......
    BOOL CcomboboxtestDlg::AddBitmap(UINT nID)
   {
CBitmap bmp;
BOOL isSuccess = FALSE;
isSuccess = bmp.LoadBitmap(nID);
if(isSuccess != FALSE)
{
combo_imagelist.Add(&bmp, RGB(255,255,255));
bmp.DeleteObject();
}
return isSuccess;
   }
   void CcomboboxtestDlg::AddTheIconToComobo()
  {
combo_imagelist.Create(16,16, TRUE, 1, 1);
AddBitmap(IDB_BITMAP1);
this->comobox->SetImageList(&combo_imagelist);
COMBOBOXEXITEM ComboListItem;
ComboListItem.iItem=1;
ComboListItem.mask=CBEIF_TEXT|CBEIF_SELECTEDIMAGE;
ComboListItem.pszText="aaa";
ComboListItem.cchTextMax=3;
ComboListItem.iImage=0;
//ComboListItem.iSelectedImage=1;
//ComboListItem.iOverlay=0;
int nitem = this->comobox->InsertItem(&ComboListItem);
ASSERT(nitem == 0);
  }    以上是在comobox中添加图片的全部代码,但是图片为什么不显示和字符串为什么都不显示呢?
   麻烦哪位大神帮忙看下吧!

解决方案 »

  1.   

    CBEIF_IMAGE属性吧,其实这个在codeproject上很多源码,可以参考下的
      

  2.   

    测试代码:
    XXDlg.hCImageList iml;
    CComboBoxEx cbe;XXDlg.cpp iml.Create(16,16,ILC_COLOR16,1,0);
    iml.SetBkColor(RGB(255,255,255));
    iml.Add(m_hIcon); cbe.Create(WS_VISIBLE|WS_CHILD|CBS_DROPDOWNLIST,CRect(0,80,150,200),this,8888);
    cbe.SetImageList(&iml); COMBOBOXEXITEM cbi;
    cbi.mask = CBEIF_IMAGE | CBEIF_SELECTEDIMAGE | CBEIF_TEXT;
    cbi.iImage = 0;
    cbi.iSelectedImage = 0;
    cbi.cchTextMax = 256; cbi.iItem = 0;
    cbi.pszText = "中国";
    cbe.InsertItem(&cbi); cbi.iItem = 1;
    cbi.pszText = "美国";
    cbe.InsertItem(&cbi);