Icon in Combobox



  • hallo zusammen.
    weiss jemand zufällig, wie man ein Icon links neben den einträgen in eine
    Combobox einfügen kann?
    die über die suche gefundenen themen waren nich so aufschlussreich für mich.
    Danke!





  • Hallo zusammen!

    Also ich hab jetzt ne CComboboxEx erstellt, aber es funktioniert noch nicht so
    richtig mit elementen + icons hinzufügen.

    damit ihr wisst, wie es ausschaut erstmal die eigenschaften:
    ID: IDC_COMBOEVENT
    Format: Dropdown
    Member: (CComboBoxEx) m_combobox
    zu verwendendes Icon: IDI_ALL

    weiss jemand wie ich da jetzt nen Eintrag + Icon einfügen kann?
    Optional ginge das auch über ne ImageList:
    (CImageList) imagelist_combo

    ich hatte es damit schonmal versucht und die List so vorbereitet:

    imagelist_combo.Create(16, 16, ILC_COLOR32, 2, 2);
    	imagelist_combo.Add(::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ALL)));
    	m_combobox.SetImageList(&imagelist_combo);
    

    bitte, bitte, kann mir da vielleicht jemand helfen?



  • Kennt sich denn da kein Mensch aus?? 😞 😞



  • Hallo, da keiner geantwortet hat, gehe ich davon aus, dass es nur wenige Leute
    hier wissen wie das geht. ich hab jetzt die Lösung gefunden. Wenn es jemand
    auch mal brauchen sollte, hier der Code: 😉

    deineimagelist.Create(16, 16, ILC_COLOR32, 6, 6);
    
    	 //0 -> Shutdown
    	 deineimagelist.Add(::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON1)));	
    	 //1 -> Standby
    	deineimagelist.Add(::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON2)));        
    	 //2 -> Restart
    	 deineimagelist.Add(::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON3)));	      
    	 //3 -> LogOff
    	 deineimagelist.Add(::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON4)));        
    	 //4 -> Switch User
    	 deineimagelist.Add(::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON5)));      
    	 //5 -> Custom ausführen
    	 deineimagelist.Add(::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON6)));       
    	 //6 -> Notiz
    	 deineimagelist.Add(::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON7)));	
    
         m_deinecombobox.SetImageList(&deineimagelist);
    
    	 COMBOBOXEXITEM     cbi;
    	 CString            str[]={"Shutdown","Standby","Restart","LogOff","Switch User","Custom ausführen","Notiz"};
    	 int                nItem;
    
    	 cbi.mask = CBEIF_IMAGE | CBEIF_INDENT | CBEIF_OVERLAY | CBEIF_SELECTEDIMAGE | CBEIF_TEXT;
    
    	 for (int i=0; i<7; i++)
    	 {
    		cbi.iItem = i;
    		str[i].Format(_T(str[i]));
    		cbi.pszText = (LPTSTR)(LPCTSTR)str[i];
    		cbi.cchTextMax = str[i].GetLength();
    		cbi.iImage = i;
    		cbi.iSelectedImage = i;
    		cbi.iOverlay = 2;
    		cbi.iIndent = (i & 0x00);   //Einrückung entsprechend der Elementposition setzen
    		nItem = m_deinecombobox.InsertItem(&cbi);
    		ASSERT(nItem == i);
    	 }
    

    PS: Das oben sollte nicht anmassend klingen, meine es ja nur gut 🙂


Anmelden zum Antworten