CCombox 如何添加图象?图象+文字

解决方案 »

  1.   

    关注~~~~~我也和你做一样的题目?查了好多资料,用ComboBoxEx这个控件可以加载图片。
      

  2.   

    使用ComBoBoxExItem来设置,那个结构里就有Image
      

  3.   

    我弄出来了:把我的给你参考参考
    1.在对话框上加入ComboBoxEx控件,并用类向导设置其Ctronl类型变量m_ComboBoxEx;
    2.在.h文件中加入CImageList *m_pImageList; //Image列
    3.在.cpp文件中加入以下代码:(其中你还要导入四个图标)
    m_pImageList = new CImageList();
    m_pImageList->Create(16, 16, ILC_COLOR, 2, 2);
    m_pImageList->Add(LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON1)));//m_hICON[0]);
    m_pImageList->Add(LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON2)));//m_hICON[1]);
    m_pImageList->Add(LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON3)));//m_hICON[2]);
    m_pImageList->Add(LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON4)));//m_hICON[3]);
        
    m_ComboxEX.SetImageList(m_pImageList);for(int i=0; i<m_pImageList->GetImageCount(); i++)
    {
        COMBOBOXEXITEM     cbi ={0};
        CString            str;
        int                nItem;    cbi.mask = CBEIF_IMAGE | CBEIF_INDENT | CBEIF_OVERLAY |
                     CBEIF_SELECTEDIMAGE | CBEIF_TEXT;    cbi.iItem = i;
        str.Format(_T("Item %02d"), i);
        cbi.pszText = (LPTSTR)(LPCTSTR)str;
        cbi.cchTextMax = str.GetLength();
        cbi.iImage = i;
        cbi.iSelectedImage = 1;
        cbi.iOverlay = 2;
        cbi.iIndent = 0;//(i & 0x03);   //Set indentation according
                                                        //to item position
        nItem = m_ComboxEX.InsertItem(&cbi);
        ASSERT(nItem == i);
    }
    这样就ok啦
      

  4.   


    1.在对话框上加入ComboBoxEx控件,并用类向导设置其Ctronl类型变量m_ComboBoxEx; 
    改为
    1.在对话框上加入ComboBoxEx控件,并用类向导设置其Ctronl类型变量m_ComboxEx; 
      

  5.   

    设置成自绘样式;
    重载:
    virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
    virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);