请帮忙!我已经尝试通过图标,hbitmap和cbitmap将图像加载到图像列表(我正在使用基于mfc对话框的应用程序)。但图像不会出现。但是当我在一个空的sdi mfc应用程序上重新创建它时,我设法查看了该图像。
m_TreeInspCtrl.DeleteAllItems();
CImageList imgl_Tree;
imgl_Tree.Create(16, 16, ILC_COLOR32, 1, 1);
/*
HBITMAP hBmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_TREE_PASS), IMAGE_BITMAP, 0, 0, LR_LOADMAP3DCOLORS);
*/
imgl_Tree.Add(AfxGetApp()->LoadIcon(IDI_ICON_PASS));
/*
CBitmap m_TreePass;
//m_TreePass.Attach(hBmp);
m_TreePass.LoadBitmap(IDB_TREE_PASS);
imgl_Tree.Add(&m_TreePass, RGB(255,0,255));
*/
m_TreeInspCtrl.SetImageList (&imgl_Tree, TVSIL_NORMAL);
CString s_Root = "Inspection Sequence";
HTREEITEM h_Root = m_TreeInspCtrl.InsertItem(s_Root, 0, 0, TVI_ROOT);
m_TreeInspCtrl.SetItemColor(h_Root, RGB(0, 150, 0));
答案 0 :(得分:1)
您必须创建一个在整个对话框存在期间有效的CImageList。您在代码中创建的那个只是临时的堆栈,它将在初始化函数返回时被销毁。我建议你将它创建为对话框类的成员变量。