我不确定当我向 CListCtrl(或列表视图控件)添加图标时为什么会出现这个黑色轮廓?
我这样加载它:
//HICON hIcon;
LoadIconWithScaleDown(theApp.m_hInstance, MAKEINTRESOURCE(Icon_ID), 15, 15, &hIcon);
然后我这样创建我的图像列表:
//CImageList iml;
iml.Create(15, 15, ILC_COLOR32, numberIcons, 0);
iml.Add(hIcon);
首先准备列表视图:
//CListCtrl lst;
lst.SetExtendedStyle(LVS_EX_DOUBLEBUFFER | LVS_EX_FULLROWSELECT |
LVS_EX_LABELTIP | LVS_EX_HEADERDRAGDROP | LVS_EX_SUBITEMIMAGES);
lst.ModifyStyle(0, LVS_SHOWSELALWAYS);
并且图标显示在列表的子项中,如下所示:
int nInd = lst.InsertItem(c, L"Main label");
lst.SetItem(nInd, nSubitemIndex, LVIF_TEXT | LVIF_IMAGE, L"2 files", nIconInd, 0, 0, 0);
那么我做错了什么?
PS。我在我的 Windows 8.1 上使用 32 位 trucolor 显示设置运行了这个测试。
图标本身虽然是 256 色图像,因为我认为没有任何理由在具有 alpha 通道的 32 位图标上浪费空间,以实现如此小的尺寸和简单的设计: