如何在MFC中的CTreeCtrl列表中添加图像

时间:2011-05-11 06:25:11

标签: windows winapi mfc windows-ce

我正在尝试在CTreeList控件中的文本之前添加Image,但它没有出现,但我观察到的是节点名称是在一些空格之后启动的,就像它留下了位图的空间,但是图像不是显示..这里是代码快照: -

CImageList m_ImageList;

CBitmap m_Bitmap1;

m_ImageList.Create(16,16,ILC_COLOR32,1,1);

m_Bitmap1.LoadBitmap(IDB_BITMAP1);

m_ImageList.Add(&m_Bitmap1, RGB(0,0,0));

TreeSoft->Create(WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP |
            TVS_HASLINES | TVS_HASBUTTONS | TVS_LINESATROOT |
            TVS_SINGLEEXPAND | TVS_SHOWSELALWAYS |  
            TVS_TRACKSELECT,
            CRect(10, 10, 200, 240), this, 0x1221);


    TreeSoft->SetImageList(&m_ImageList, TVSIL_NORMAL);

hTree = TreeSoft->InsertItem( L"Software Production",0,0, TVI_ROOT);

hCompany = TreeSoft->InsertItem(L"Microsoft",0,0, hTree);

请告诉我这里缺少的东西......

2 个答案:

答案 0 :(得分:0)

仅用于测试目的。 使用16位调色板创建一个图标。

而不是ILC_COLOR32使用ILC_COLOR。

而不是RGB(0,0,0)使用(COLORREF)0xFFFFFF

我有完全相同的代码,除了较小的调色板,它的工作原理。

如果这样可行,您可以尝试使用更大的调色板。

答案 1 :(得分:0)

现在您只需要为新创建的分支设置图像:

TreeSoft->SetItemImage(hTree , 0, 0); // I think it starts from 0 (if it does not show try 1)