Как добавить изображение в список CTreeCtrl в MFC - PullRequest
2 голосов
/ 11 мая 2011

Я пытаюсь добавить изображение перед текстом в элементе управления CTreeList, но оно не появляется, но я заметил, что имя узла запускается после некоторого пробела, как будто оно оставляет место для растрового изображения, но изображение непоказывает ... вот код кода: -

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 голосов
/ 12 мая 2011

Теперь вам просто нужно установить imafge для вновь созданной ветви:

TreeSoft->SetItemImage(hTree , 0, 0); // I think it starts from 0 (if it does not show try 1)
0 голосов
/ 11 мая 2011

Только для целей тестирования. Создайте иконку с 16-битной цветовой палитрой.

Вместо ILC_COLOR32 используйте ILC_COLOR.

А вместо RGB (0,0,0) используйте (COLORREF) 0xFFFFFF

У меня точно такой же код, за исключением меньшей цветовой палитры, и он работает.

Если это работает, вы можете попробовать с большей палитрой.

...