在MFC中的列表控件中显示bmp图像和文本

时间:2016-01-19 13:17:36

标签: visual-studio-2010 visual-c++ mfc dev-c++

我想在MFC中的列表控件中显示bmp图像和文本, 它应该为不同的项目显示不同的bmp图像,但是它对所有项目显示相同的bmp

这是我的代码

CListCtrl m_cParentListContrl;
CImageList m_ImageList[3];

m_ImageList[0].Create(IDB_BMP_LISTCTRL,128,1,RGB(150,150,100));
m_ImageList[1].Create(IDB_BMP_CHECKBOX,128,1,RGB(150,150,100));
m_ImageList[2].Create(IDB_BMP_COMBOBOX,128,1,RGB(150,150,100));

m_cParentListContrl.SetImageList(m_ImageList,LVSIL_NORMAL);

for(int i = 0 ; i < 3 ; i++)
{
    val.Format(_T("List ::%d"),i);
    //third parameter for index of image to be displayed
    // if that replaced by i to 0 then it display single image else not
    m_cParentListContrl.InsertItem(i,val,i);
}

由于

1 个答案:

答案 0 :(得分:0)

假设您不希望将当前的3个位图缩小为一个连续的条带位图,并且您的3个图像一个接一个地显示:

CImageList m_ImageList;

m_ImageList.Create(128,128, ILC_COLOR24, 3, 1);
m_ImageList.SetImageCount(3);

CBitmap bmpListCtrl;
bmpListCtrl.LoadBitmap(IDB_BMP_LISTCTRL);
m_ImageList.Replace(0, bmpListCtrl, (CBitmap*)NULL);

CBitmap bmpCheckBox;
bmpCheckBox.LoadBitmap(IDB_BMP_CHECKBOX);
m_ImageList.Replace(1, bmpCheckBox, (CBitmap*)NULL);

CBitmap bmpComboBox;
bmpComboBox.LoadBitmap(IDB_BMP_COMBOBOX);
m_ImageList.Replace(2, bmpComboBox, (CBitmap*)NULL);