在最近的项目中,遇到 了这样一个比较棘手的问题,最后花了一天的时间才解决,现总结一下,以供大家参考!
问题:原来的项目工程在XP系统下用VC6编写的,一切没有问题。但由于现实需要需要在WIN7/XP系统运行,我们把工程转到了VC2010,在WIN7下没有问题。但在XP却出现了一个莫名的问题:就是CTreeCtrl控件的BMP图标不显示,在显示图标的地方全部不显示(为空),经过反复检测,确认代码没有问题(在WIN7系统下没有出现问题)。
其中的显示图标的CTreeCtrl控件代码如下:
.h文件
CTreeCtrl m_Tree;
CImageList m_Img;
.cpp文件
m_Tree.Create (WS_CHILD | WS_VISIBLE | TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS, CRect(0,0,200,400), this, 0x09992);
m_Img.Create(16, 16, ILC_COLOR | ILC_MASK, 1, 1);
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
int iNo = m_Img.Add(&bmp, RGB(255,255,255));
bmp.Detach();
bmp.DeleteObject();
m_wndStationTree.SetImageList(&m_Img, TVSIL_NORMAL);
HTREEITEM hPA = m_wndStationTree.InsertItem("123", iNo, iNo);
m_wndStationTree.InsertItem("456", 0, 0, hPA);
//////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////