Witam. Postepuje według poradnika: http://cpp0x.pl/kursy/Kurs-WinAPI-C++/Kontrolki/Drzewo-TreeView/206
Do dodania nowego elementu drzewa uzywam funkcji:
struct sPokoj *f_DodajPokoj(int Ikona, char* nazwa, char* opis){
struct sPokoj *nowy = new sPokoj;
nowy->nazwa = nazwa;
nowy->opis = opis;
nowy->tvi.mask = TVIF_TEXT;
nowy->tvi.pszText = nazwa;
nowy->tvi.iImage = nowy->tvi.iSelectedImage = 1;
TVINSERTSTRUCT tvins;
tvins.item = nowy->tvi;
tvins.hParent = tvins.hInsertAfter = TVI_ROOT;
nowy->hPokoj = TreeView_InsertItem( Okno.h_Kanaly, & tvins );
TVITEM tvi;
tvi.mask = TVIF_HANDLE | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM;
tvi.iImage = nowy->tvi.iSelectedImage = 3;
tvi.hItem = nowy->hPokoj;
struct TEST test;
tvi.lParam =( LPARAM ) & test;
TreeView_SetItem( Okno.h_Kanaly, & tvi );
return nowy;
};
Ikonki wczytuję tutaj:
BOOL Rejestracja(HINSTANCE hInst){
if(!RejestrujPrzycisk(hInst))
return false;
if(!RejestrujCheckBox(hInst))
return false;
HIMAGELIST himl;
HBITMAP hbmp;
SHORT n1, n2;
himl = ImageList_Create( 16, 16, FALSE, 2, 0 );
hbmp = ( HBITMAP ) LoadImage( NULL, "BITMAPY\\IconPokoj.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
n1 = ImageList_Add( himl, hbmp,( HBITMAP ) NULL );
DeleteObject( hbmp );
hbmp = ( HBITMAP ) LoadImage( NULL, "BITMAPY\\IconUzytkownik.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
n2 = ImageList_Add( himl, hbmp,( HBITMAP ) NULL );
DeleteObject( hbmp );
TreeView_SetImageList( Okno.h_Kanaly, himl, TVSIL_NORMAL );
return true;
}
Tu sa struktury:
struct TEST{
int Bla;
char BlaBla;
double BlaBlaBla;
};
struct sPokoj{
TVITEM tvi;
HTREEITEM hPokoj;
string nazwa;
string opis;
};
Niestety nie widze żadnej ikonki przy elementach:
f_DodajPokoj(0, "pokoj 1", "");
f_DodajPokoj(0, "pokoj 2", "");
f_DodajPokoj(0, "pokoj 3", "");
macie jakieś pomysły?