MFC Treeview: Как применить разные изображения к различным узлам в Treeview? - PullRequest
0 голосов
/ 22 октября 2010

Я хочу применить разные изображения к разным узлам в моем MFC Treeview? В настоящее время я применил одно изображение к своему корневому узлу в виде дерева, теперь я хочу применить другое изображение к подузлам и узнать, как развернуть все узлы в виде дерева, как только я разверну один узел, другие свернутся.

В настоящее время я делаю так:

    CImageList *m_pNASImageList;
CBitmap m_objRootImg;

    m_objRootImg.LoadBitmap(IDB_TREEVIEWROOTIMG); 
    m_objNASFolderImg.LoadBitmap(IDB_NASFOLDERIMG);  

    m_RootImageList = new CImageList();
m_RootImageList->Create(16,16,ILC_COLOR8,1,1);  
m_RootImageList->Add(&m_objRootImg,RGB(250,190,79)); 
m_RootImageList->Add(&m_objNASFolderImg,RGB(250,190,79)); 
m_pTreeview->SetImageList(m_RootImageList,TVSIL_NORMAL);

HTREEITEM Htvi = m_pTreeview->InsertItem("NAS1", hparentitem);
                     m_pTreeview->SetItemImage(Htvi,1,1); 
           m_pTreeview->InsertItem("Animation", Htvi);
           m_pTreeview->InsertItem("StoryBoard", Htvi);  

Я загрузил одно изображение для своего корня и одно для «NAS1», как загрузить анимацию и раскадровку, какие значения я должен дать, я взял третье изображение ...

Любая помощь высоко ценится. Спасибо.

1 Ответ

1 голос
/ 22 октября 2010

Вы можете использовать BOOL SetItemImage (HTREEITEM hItem, int nImage, int nSelectedImage);это внутри класса CTreeCtrl.

UPD: импортируйте свои растровые изображения в боль ресурсов и загрузите их:

CBitmap m_Bitmap1, m_Bitmap2, m_Bitmap3, m_Bitmap4;

m_Bitmap1.LoadBitmap(IDB_BITMAP1);
m_Bitmap2.LoadBitmap(IDB_BITMAP9);
m_Bitmap3.LoadBitmap(IDB_BITMAP10);
m_Bitmap4.LoadBitmap(IDB_BITMAP8);

Создайте свойсписок изображений для вашего дерева: CImageList * m_ImageListTree;

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));
m_ImageListTree->Add(&m_Bitmap4, RGB(255, 255, 255));

Установите список изображений для своего дерева:

MyTree-> SetImageList (m_ImageListTree, 0);

сейчасВы можете использовать интервалы от 0 до 3 для 4 загруженных изображений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...