使用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);
}

浙公网安备 33010602011771号