Botcher::Blog

快意人生 水煮沉浮
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

使用32位位图实现CTreeCtrl的Overlay图标

Posted on 2011-05-13 22:35  Botcher  阅读(762)  评论(0)    收藏  举报

 

image

 

使用32位位图,实现如上效果的CTreeCtrl的Overlay图标。

 

直接看代码吧:

 

	m_overlayImages.Create(16, 16, ILC_COLOR32 | ILC_MASK, 0, 0);
	CBitmap bmp;
	if (!bmp.LoadBitmap(IDB_BITMAP_ICON))
	{
		ASSERT(FALSE);
		return FALSE;
	}
	m_overlayImages.Add(&bmp, RGB(255, 0, 255));
	int nIconCount = m_overlayImages.GetImageCount();
	
	for (int i = 1; i < nIconCount; i++)			//support 16
	{
		m_overlayImages.SetOverlayImage(i, i);
	}
	m_treeCtrl.SetImageList(&m_overlayImages, TVSIL_NORMAL);

	HTREEITEM hRoot = m_treeCtrl.InsertItem(_T("Root"), 0, 0, TVI_ROOT);
	for (int overlay = 1; overlay < nIconCount; overlay++)			//support 16
	{
		HTREEITEM hItem = m_treeCtrl.InsertItem(_T("Overlay"), 0, 0, hRoot);
		m_treeCtrl.SetItemState(hItem, INDEXTOOVERLAYMASK(overlay), TVIS_OVERLAYMASK);
	}

 

 

代码下载