VC++2005中使用ListCtrl如何和CImagelist关联显示列表项图标

VC++2005中使用listctrl控件只能显示出列表项的文字,而不知如何与CImagelist关联显示列表项图标,我建的是对话框类的MFC应用程序,在对话框上添加的L... VC++2005中使用listctrl控件只能显示出列表项的文字,而不知如何与CImagelist关联显示列表项图标,我建的是对话框类的MFC应用程序,在对话框上添加的ListCtrl,我的程序代码如下:
BOOL CListdlg::OnInitDialog()
{
CDialog::OnInitDialog();
CImageList Licon,Sicon;
Licon.Create(32,32,ILC_COLOR8|ILC_MASK,1,1);
Sicon.Create(16,16,ILC_COLOR8|ILC_MASK,1,1);
m_listctr.SetImageList(&Licon,LVSIL_NORMAL);
m_listctr.SetImageList(&Sicon,LVSIL_SMALL);
m_listctr.InsertItem(0,TEXT("电脑"));
m_listctr.InsertItem(0,TEXT("电话"));
m_listctr.InsertItem(0,TEXT("书籍"));
m_listctr.InsertItem(0,TEXT("钢笔"));
return TRUE; }
运行后没有图标,只有文字
希望显示如图所示的MFC图标,请指教!谢谢!
hibok2,你好!我按你写的试了还是不行,我怀疑我的图标没取到,或是取到后没加到Imagelist里,或是不知道它的Image索引号是不是为0,我再贴一下我的源程序,你帮我看一下啊!谢谢!
BOOL CListdlg::OnInitDialog()
{// TODO: 在此添加额外的初始化
CDialog::OnInitDialog();
CImageList Licon,Sicon;
Licon.Create(32,32,ILC_COLOR8|ILC_MASK,1,1);
Sicon.Create(16,16,ILC_COLOR8|ILC_MASK,1,1);

Licon.Add(AfxGetApp()->LoadIconW(IDR_MAINFRAME));
Sicon.Add(AfxGetApp()->LoadIconW(IDR_MAINFRAME));
m_listctr.SetImageList(&Licon,LVSIL_NORMAL);
m_listctr.SetImageList(&Sicon,LVSIL_SMALL);
m_listctr.InsertItem(0,TEXT("电脑"),0);
m_listctr.InsertItem(0,TEXT("电话"),0);
m_listctr.InsertItem(0,TEXT("书籍"),0);
m_listctr.InsertItem(0,TEXT("钢笔"),0);
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
展开
 我来答
无尽星空ljm
2010-08-06 · TA获得超过1793个赞
知道小有建树答主
回答量:441
采纳率:0%
帮助的人:0
展开全部
你没指定Image索引号。
把:
m_listctr.InsertItem(0,TEXT("电脑"));
m_listctr.InsertItem(0,TEXT("电话"));
m_listctr.InsertItem(0,TEXT("书籍"));
m_listctr.InsertItem(0,TEXT("钢笔"));
改为:
int imageIndex = 0; //图标索引号
m_listctr.InsertItem(0,TEXT("电脑"), imageIndex );
m_listctr.InsertItem(0,TEXT("电话"), imageIndex );
m_listctr.InsertItem(0,TEXT("书籍"), imageIndex );
m_listctr.InsertItem(0,TEXT("钢笔"), imageIndex );

补充:
刚才查了一下MSDN。设置给CListCtrl的CImageList要采用动态申请的方式,并且CListCtrl会负责释放CImageList的内存。
改为如下代码:

CImageList *Licon,*Sicon;
Licon = new CImageList();
Sicon = new CImageList();
Licon->Create(32,32,ILC_COLOR8|ILC_MASK,1,1);
Sicon->Create(16,16,ILC_COLOR8|ILC_MASK,1,1);
Licon->Add(AfxGetApp()->LoadIcon(IDR_MAINFRAME));
Sicon->Add(AfxGetApp()->LoadIcon(IDR_MAINFRAME));

m_listctr.SetImageList(Licon,LVSIL_NORMAL);
m_listctr.SetImageList(Sicon,LVSIL_SMALL);
m_listctr.InsertItem(0,TEXT("电脑"),0);
m_listctr.InsertItem(0,TEXT("电话"),0);
m_listctr.InsertItem(0,TEXT("书籍"),0);
m_listctr.InsertItem(0,TEXT("钢笔"),0);

上述代码我已经调试通过。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式