vc listctrl里相同的列不同行显示不同图标

 一.将图标1和图标2并排添加到一个BITMAP资源中(IDB_BITMAP1)  
1.先添加两个16×16的ico图标,然后添加资源,选择bitmap,该bitmap是32×32的,然后打开Bitmap,打开“资源工具条”里面的"ID="
2.然后选择“改变”-> “查看使用”,然后修改"宽"32,“高”16,然后打开第一个ico,CTRL+C复制,然后打开bitmap,CTRL+V,然后再点击第二个ico,CTRL+C复制,然后打开bitmap,CTRL+V
3.这时这两个图示重叠在一起的, 将后添加的第二个ico移到bitmap右面然后,保存
二,对话框初始化函数里:

wndList.SetExtendedStyle( wndList.GetExtendedStyle()  |LVS_EX_GRIDLINES   |LVS_EX_FULLROWSELECT |LVS_EX_SUBITEMIMAGES);
    wndList.InsertColumn(1, "第一列", LVCFMT_CENTER,110, -1);
wndList.InsertColumn(2, "第二列", LVCFMT_CENTER,180, -1);
wndList.InsertColumn(3, "图标", LVCFMT_CENTER, 190, -1);
// 插入列

CBitmap       bitmap;  
bitmap.LoadBitmap(IDB_BITMAP1);  
m_pImageList       =       new       CImageList();  
m_pImageList->   Create(16,16,TRUE,2,2);  
m_pImageList->   Add(&bitmap,       RGB(0,       0,       0));  
wndList.SetImageList(m_pImageList,LVSIL_SMALL);  


三.void CListctrlDlg::OnButton1()
{
if(nCount%2==0)
{
  wndList.InsertItem( nCount, _T("第1行第一列"),-1);   //添加第nCount,行,第一列的文本为“第n行”,-1表示不添加图标
  wndList.SetItem( nCount,1,LVIF_TEXT|LVIF_IMAGE,_T("第二列"),-1,NULL,NULL,  0);  
  //设置第n行第2列的文本为“第二列”,-1表示不添加图标
  wndList.SetItem( nCount,2,LVIF_TEXT|LVIF_IMAGE,_T(""),1,NULL,NULL,  0);  
  //设置第n行第3列的文本为“第三列”,0表示添加第一个图标1表示第二个图标
}
if(nCount%2!=0)
{
  wndList.InsertItem( nCount, _T("第1行第一列"),-1);  

  wndList.SetItem( nCount,1,LVIF_TEXT|LVIF_IMAGE,_T("第二列"),-1,NULL,NULL,  0);  
    wndList.SetItem( nCount,2,LVIF_TEXT|LVIF_IMAGE,_T(""),0,NULL,NULL,  0);  
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值