关于在CTreeCtrl中加载位图的问题

时间:2010-11-29 10:29:55

标签: mfc

我正在尝试为我的控件创建一个图像列表,并加载其他图像。问题是只使用我创建的图像,并且不显示加载的图像。这是我的ccode:

定义IMAGE1 1

定义IMAGE2 2

定义IMAGE3 3

定义IMAGE4 4

定义IMAGE5 5

m_Bitmap1.LoadBitmap(IDB_BITMAP1);
m_Bitmap2.LoadBitmap(IDB_BITMAP2);
m_Bitmap3.LoadBitmap(IDB_BITMAP3);


m_ImageListTree = new CImageList;
m_ImageListTree->Create(IDB_BITMAP1, 16, 1, RGB(255, 255, 255));
m_ImageListTree->Add(&m_Bitmap2, RGB(255, 255, 255));
m_ImageListTree->Add(&m_Bitmap3, RGB(255, 255, 255));


while( ItemTree != NULL)
{
    BasicTree->SetItemImage(ItemTree, nCounter, nCounter);
    ItemTree = BasicTree->GetNextItem(ItemTree, TVGN_CHILD);
    nCounter++;
}

唯一的IDB_BITMAP1显示在所有树级别中。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

实际上我从不在循环中,因为我在进入循环之前没有得到初始的HTRREITEM。

此外,在控件中创建列表,使用您用于创建的位图初始化每个新项目。您可以在插入或更改中设置图像eitehr,但需要指定不同的图像(插入时需要定义TVINSERTSTRUCTW并在插入整个项目之前设置图像。