VC++ 6 CListCtr添加图片以及不显示文字的问题
用CListCtrl的时候添加图片首先把CListCtrl的样式改成热破让他,默认是ICON。
然后你需要把下面这段代码添加到InsertItem之前
- //在report样式下得先加列,不然不会显示
- m_lsCListCtrl.InsertColumn(0,_T(“文件名 “),LVCFMT_RIGHT);
- m_lsCListCtrl.InsertColumn(1,_T(“仪器类别”),LVCFMT_RIGHT);
- m_lsCListCtrl.InsertColumn(2,_T(“项目类别”),LVCFMT_LEFT);
- //设置列宽
- for(k = 0k<3;++k)
- m_lsCListCtrl.SetColumnWidth(k,100);
- //下面是为了添加图片用的
- //其中m_ImageList是可以全局访问的,保证随时都可以访问到
- m_ImageList.Create(16,16,ILC_COLOR24,5,1);
- CBitmap bitmap;//创建一个CBitmap对象
- bitmap.LoadBitmap(IDB_TIME);//IDB_TIME是一个bitmap资源的ID,可以自己添加 ID自取
- m_ImageList.Add(bitmap,RGB(0,128,128));//把bitmap加到m_ImageList中
- bitmap.Detach();//释放位图 然后添加IDB_TICK
- bitmap.LoadBitmap(IDB_TICK);
- m_ImageList.Add(bitmap,RGB(0,128,128));
- //设置m_lsCListCtrl的属性 这里m_lsCListCtrl是CListCtrl的control类型的变量
- m_lsCListCtrl.SetExtendedStyle(LVS_EX_CHECKBOXES |LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT | LVS_EX_SUBITEMIMAGES);
- m_lsCListCtrl.SetImageList(m_ImageList,LVSIL_SMALL);//把m_ImageList关联给m_lsCListCtrl控件
- //下面是添加内容
- int ret = m_lsCListCtrl.InsertItem(0,“HELLO”);//默认会添加到第一列
- m_lsCListCtrl.SetItemText(0,0,“HELL”); //在第一行的第一列修改
- m_lsCListCtrl.SetItemText(0,1,“HPLL”); //在第一行的第二列加修
- // m_lsCListCtrl.SetItem(ret,0,LVIF_IMAGE,NULL,0,0,0,0);
- m_lsCListCtrl.InsertItem(1,“HELLO”,0);
- m_lsCListCtrl.InsertItem(2,“HELLO”,1);
- m_lsCListCtrl.InsertItem(3,“HELLO”,0);
- m_lsCListCtrl.InsertItem(4,“HELLO”); //没有加图片的某人添加ID为0的图片 相当于第三个参数是0
- m_lsCListCtrl.InsertItem(5,“HELLO”);
- m_lsCListCtrl.InsertItem(6,“HELLO”);
对于新手来说,可能添加图片之后,发现图片不能显示,连文字也不能显示。这其实只是你没有设置列而已,对于report样式的CListCtrl,首先需要设置列头,就是InsertColumn。然后才会显示。
好好学习,天天向上。