为什么我的listCtrl中各行显示的是同一个BITMAP?

冰洛 2010-09-11 12:19:37
1.各位帮忙看一下,为什么我的函数执行后,各行显示的是同一个图片,即都为BITMAP1;
2.还有,我在头文件申明了CImageList m_Imagelist;后,每次运行程序结束后,都会跳出报错窗口C++ Debug Library.说错误的文件是cmdtarg.cpp的第43行,这是什么情况啊,我如果不申明这个变量就不会报错。

代码如下:
CBitmap Bitmap[4];

Bitmap[0].LoadBitmap(IDB_BITMAP1);
Bitmap[1].LoadBitmap(IDB_BITMAP2);
Bitmap[2].LoadBitmap(IDB_BITMAP3);
Bitmap[3].LoadBitmap(IDB_BITMAP4);


m_Imagelist.Create(24, 24,ILC_COLOR4|ILC_MASK, 4, 4);
//m_Imagelist 是CImageList类成员,已经在头文件中定义
for (int i = 0 ; i < 4 ; i ++)
{
m_Imagelist.Add(&Bitmap[i], RGB(0, 0, 0));
}

//m_fileList是listCtrl的变量
m_fileList.SetImageList(&m_Imagelist,LVSIL_SMALL);


m_fileList.InsertColumn(0,_T("T1"),LVCFMT_LEFT,80);
m_fileList.InsertColumn(1,_T("A1"),LVCFMT_LEFT,32);
m_fileList.InsertColumn(2,_T("A2"),LVCFMT_LEFT,32);


CString str;
for(int j = 0;j < 4 ;j ++)
{
m_fileList.InsertItem(j,NULL,1);
LVITEM item;
item.iItem = j;
item.iSubItem = 0;

item.mask = LVIF_IMAGE|LVIF_TEXT;

item.iImage = j;
// item.pszText = _T("Virqin");
m_fileList.SetItem(&item);
}
...全文
45 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰洛 2010-09-11
  • 打赏
  • 举报
回复
我懂了。。谢谢了
冰洛 2010-09-11
  • 打赏
  • 举报
回复
3楼大哥,那怎么改这个图片索引号呢?
  • 打赏
  • 举报
回复
m_fileList.InsertItem(j,NULL,1);这句的参数不对。。

int InsertItem(
int nItem,
LPCTSTR lpszItem,
int nImage
);
你的Image的索引号始终是1。。。
冰洛 2010-09-11
  • 打赏
  • 举报
回复
那具体是怎么设置的呀?能否将我的代码帮忙改改啊?
gzstyxb 2010-09-11
  • 打赏
  • 举报
回复
这个要为每个行单独设置符号索引呢。不是你那样的操作方式,好象有个结构进行状态设置。

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧