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!


Anmelden zum Antworten