一个自绘树控件,每个节点前的图标(位图)都是根据数据库读出的内容动态显示的,比如正方形 线等等 颜色也不一样我的思路是这样的:创建位图,在内存上画出来,m_TempBmp为类成员变量
CDC *pDC = GetDC();
MemoryDC.CreateCompatibleDC(pDC);
m_TempBmp.CreateCompatibleBitmap(pDC,m_BmpRect.Width(),m_BmpRect.Height());然后利用GDI函数在MermoryDC上画出想要的图形获得图像的句柄
hBitmap = (HBITMAP)m_TempBmp.m_hObject;最后重写树InsertItem函数,把位图句柄hBitmap作为参数传入并显示图,利用STL MAP容器保存每一项和每一项的图标函数中复制位图的语句是 ItemBMP.attach(hBitmap);
//我估计这句没有把m_TempBmp复制到ItemBMP的作用..只是ItemBMP通过这个句柄引用了外面的图像我试过的确图标显示出来了,但问题是所有的节点图标完全一样,
而m_TempBmp一定要作为成员变量,否则作为局部变量马上就被销毁了,难道要用数组或者容器来保存每幅图??
CDC *pDC = GetDC();
MemoryDC.CreateCompatibleDC(pDC);
m_TempBmp.CreateCompatibleBitmap(pDC,m_BmpRect.Width(),m_BmpRect.Height());然后利用GDI函数在MermoryDC上画出想要的图形获得图像的句柄
hBitmap = (HBITMAP)m_TempBmp.m_hObject;最后重写树InsertItem函数,把位图句柄hBitmap作为参数传入并显示图,利用STL MAP容器保存每一项和每一项的图标函数中复制位图的语句是 ItemBMP.attach(hBitmap);
//我估计这句没有把m_TempBmp复制到ItemBMP的作用..只是ItemBMP通过这个句柄引用了外面的图像我试过的确图标显示出来了,但问题是所有的节点图标完全一样,
而m_TempBmp一定要作为成员变量,否则作为局部变量马上就被销毁了,难道要用数组或者容器来保存每幅图??
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货