各位大虾,怎样在ListCtrl列表中加入图标呀?
我是这样处理的:在OnInitDialog中生成m_pImageList
m_pImageList=new CImageList;
m_pImageList->Create(IDB_BITMAP,16,1,RGB(0,255,0));
在另一函数中使用:
lvItem.mask=LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM;
m_MainListCtl.SetImageList (m_pImageList,LVSIL_NORMAL);
lvItem.iSubItem=0;
lvItem.iItem=i;
lvItem.pszText=UserData->Name;
lvItem.lParam=i;
lvItem.iImage=1;
m_MainListCtl.InsertItem(&lvItem);
m_MainListCtl.SetTextColor(RGB(255,255,255));
但怎么 弄我都把他显示不出来,各位大虾帮忙呀!谢谢了,先!
问题点数:20、回复次数:8Top
1 楼gxh(我是一只菜菜菜菜鳥)回复于 2001-11-05 16:07:20 得分 0
有沒有用m_pImageList->Add()?Top
2 楼bon9527(bon9527)回复于 2001-11-05 16:17:28 得分 0
用m_MainListCtl.SetImageList (&m_pImageList,LVSIL_NORMAL);试试
Top
3 楼use_id(use_id)回复于 2001-11-05 16:25:36 得分 10
加载小图片
CImageList m_imgList;
void CMy011017D00Dlg::Init()
{
DWORD NewStyle = LVS_EX_FULLROWSELECT|LVS_EX_SUBITEMIMAGES;
m_ctlTestLt.SetExtendedStyle(NewStyle);
// IDB_ADMINISTRATOR_BMP 为BMP资源
m_imgList.Create(IDB_ADMINISTRATOR_BMP,10, 60, (COLORREF)-1 );
m_ctlTestLt.SetImageList(&m_imgList,LVSIL_SMALL);
m_ctlTestLt.InsertColumn(1,_T(" Online list "),LVCFMT_LEFT,100,-1);
LVITEM li;
li.mask = LVIF_IMAGE|LVIF_TEXT;
li.iItem = 0;
li.iSubItem = 0;
li.iImage = 0;
li.pszText = _T(" Administrator");
m_ctlTestLt.InsertItem(0,"");
m_ctlTestLt.SetItem( &li);
for(int i=0;i<30;i++)
{
li.iItem = i;
m_ctlTestLt.InsertItem(i,"");
m_ctlTestLt.SetItem( &li);
}
}Top
4 楼bon9527(bon9527)回复于 2001-11-05 16:32:58 得分 0
对了,你好像没有用add();Top
5 楼fwsland(fwsland)回复于 2001-11-05 16:37:17 得分 10
你的m_pImageList->Create(IDB_BITMAP,16,1,RGB(0,255,0));应改为:
m_pImageList->Create(16,16,TRUE,0,1);
此外:m_MainListCtl.InsertItem(&lvItem);最好不要用,因为要用到TV_ITEM结构,非常的烦,
建议你用它的另一种重载的形式:
HTREEITEM InsertItem(LPCTSTR lpszItem, int nImage, int nSelectedImage, HTREEITEM hParent=TVI_ROOT, HTREEITEM hInsertAfter=TVI_LAST);(祥见MSDN)
(附:我的QQ:16879730 ,EMAIL:fanwenshengcom@sohu.com)
Top
6 楼shizf()回复于 2001-11-05 16:54:54 得分 0
HICON hIcon;
hIcon=AfxGetApp()->LoadIcon(IDR_YOURICON);
m_imageList.Add(hIcon);
必须给ImageList加Icon,代码如上,按加入的先后顺序,分别为1,2,3,......Top
7 楼superdreamer(只懂一点点!)回复于 2001-11-05 17:10:58 得分 0
各位大虾,谢谢你们的回答,我的问题解决了,谢谢!
没有用Add()方法,因为我在Create()时加入了位图ID(IDB_BITMAP)我只是把LVSIL_NORMAL改为LVSIL_SMALL就搞定了,我也不知什么原因!Top
8 楼superdreamer(只懂一点点!)回复于 2001-11-05 17:14:39 得分 0
to fwsland(fwsland):我的QQ 是:82257575 EMAIL:wwzh12501@sohu.com但是我们公司前几天把端口给关了,不能上了,
我接触VC几个月,望以后多交流,谢谢!Top




