CImageList 創建後調用 LoadBitmap 與 SetImageList,運行時圖標顯示空白,調試發現 ImageList 與 Bitmap 均未成功加載。
IDB_BITMAP11 未定義或與 .rc 文件不符。ILC_COLOR24 需 24 位真彩色位圖,若資源為 8 位/4 位會加載失敗。建議用 ILC_COLOR32 或確保位圖為 24 位。Create(32,32,...) 要求位圖寬高為 32 的倍數(單行多圖標),單個 32x32 位圖寬度應為 32。m_Imagelist.Add(&bitmap, RGB(255,0,255))(指定透明色)。m_Imagelist.Create(32, 32, ILC_COLOR32 | ILC_MASK, 1, 1);
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP11); // 確保資源為 32x32 24/32 位
m_Imagelist.Add(&bitmap, RGB(255,0,255)); // 添加並設置透明色
pTheList->SetImageList(&m_Imagelist, LVSIL_SMALL);
檢查 m_Imagelist.GetImageCount() 是否 > 0,若為 0 則加載失敗,逐步排查上述條件。