ListrCtrl重绘

m_cListCtrl.SetImageList(&m_cImageListNormal, LVSIL_NORMAL);
这使用的m_cImageListNormal, ListCtrl只是存储一个指向它的指针,如果这个ImageList是一个局部变量,析构后,ListCtrl内的指针就无效了

 
 
  • LVSIL_NORMAL: Shown in LVS_ICON view only
  • LVSIL_SMALL: Shown in LVS_SMALLICONLVS_LIST, and LVS_REPORT modes. //这要注意
ListCtrl可以添加2次ImageLis
m_cListCtrl.SetImageList(&m_cImageListNormal, LVSIL_NORMAL); 用来在ICON模式中显示
m_cListCtrl.SetImageList(&m_cImageListSmall, LVSIL_SMALL);用来在其他模式中显示
也可以只添加一次
ListCtrl插入的方式也很特别:
for (int i = 0; i < m_nItems; i++)
{
// Insert the first item
	lvi.mask =  LVIF_IMAGE | LVIF_TEXT;
	strItem.Format(_T("Item %i"), i);
	lvi.iItem = i;
	lvi.iSubItem = 0;
	lvi.pszText = (LPTSTR)(LPCTSTR)(strItem);
	lvi.iImage = i%8;		// There are 8 images in the image list
	m_cListCtrl.InsertItem(&lvi);  //Item 0 调用 InsertItem
// Set subitem 1
	strItem.Format(_T("%d"), 10*i);
	lvi.iSubItem =1;
	lvi.pszText = (LPTSTR)(LPCTSTR)(strItem);
	m_cListCtrl.SetItem(&lvi);    //该列的其他项只调用SetItem
// Set subitem 2
	strItem.Format(_T("%s"),
	               COleDateTime::GetCurrentTime().Format(_T("Created: %I:%M:%S %p, %m/%d/%Y")));
	lvi.iSubItem =2;
	lvi.pszText = (LPTSTR)(LPCTSTR)(strItem);
	m_cListCtrl.SetItem(&lvi); //该列的其他项只调用SetItem
}

有什么好的方式来记录按钮的状态?用一个变量似乎有点山寨
对标题栏的绘制,GetHeaderCtrl()后用自定义的类SubclassWindow()就可以了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值