LISTVIEW CONTROL mit ICONEN
-
Ich möchte einen Listview Control mit Symbole und Text erstellen, könnte mir jemand einen funktionierenden Beispiel zeigen?
Ich probiere es schon zum zweiten mal, abber irgendwas klappt nie...
-
Hier,
snippsel Dir raus was Du brauchst ...
void refresh_user_tree(HWND hTree, CMessage msg) { #define CX_ICON 20 #define CY_ICON 20 #define NUM_ICONS 2 HIMAGELIST himlIcons; // handle to new image list HICON hicon; // handle to icon TVINSERTSTRUCT is; string strBeg, strEnd, strUser; int nPos, nBeg, nEnd; nPos = nBeg = nEnd = 0; strBeg = "<u>"; strEnd = "</u>"; TreeView_SetImageList(hTree, NULL, TVSIL_NORMAL); himlIcons = ImageList_Create(CX_ICON, CY_ICON, ILC_MASK, NUM_ICONS, 0); hicon = LoadIcon(g_hInstance, MAKEINTRESOURCE(IDI_OFFLINE)); ImageList_AddIcon(himlIcons, hicon); hicon = LoadIcon(g_hInstance, MAKEINTRESOURCE(IDI_ONLINE)); ImageList_AddIcon(himlIcons, hicon); TreeView_SetImageList(hTree, himlIcons, TVSIL_NORMAL); TreeView_DeleteItem(hTree, TVI_ROOT); while((nBeg=msg.m_str_Msg.find(strBeg.c_str(),nPos)) > -1) { if( nBeg > 0 && nPos == nBeg ) break; nBeg += strBeg.length(); nEnd=msg.m_str_Msg.find(strEnd, nBeg); if( nEnd == -1 || nEnd == nBeg ) break; strUser = msg.m_str_Msg.substr(nBeg, nEnd-nBeg); nPos = strUser.find_last_of('@'); if( nPos > 0 ) { string strOnline = strUser.substr(nPos+1); strUser = strUser.substr(0, nPos); memset(&is, 0, sizeof(is)); if( strOnline[0] == '0' ) { strUser += ":offline"; is.itemex.iImage = 0; } if( strOnline[0] == '1' ) { strUser += ":online"; is.itemex.iImage = 1; } is.hParent = TVI_ROOT; is.hInsertAfter = TVI_LAST; is.itemex.mask = TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_PARAM; is.itemex.hItem; is.itemex.state; is.itemex.stateMask; is.itemex.pszText = (char*)strUser.c_str(); is.itemex.cchTextMax = strUser.length(); //is.itemex.iImage; is.itemex.iSelectedImage = is.itemex.iImage; is.itemex.cChildren; is.itemex.lParam; is.itemex.iIntegral; TreeView_InsertItem(hTree, &is); } nPos = nBeg; } }Viel Erfolg.
RB
-
Klasse! So schnell wurde mir noch auf keinem Forum antwortet! Danke sehr!