tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
347
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von SCIPIO-AEMILIANUS
    SCIPIO-AEMILIANUS SCIPIO-AEMILIANUS ist offline aka DonMahallem
    Registriert seit
    Mar 2007
    Ort
    Saxonburg(Pa)
    Beiträge
    375
    Ich hab nen kleines Problem mit CTreeControl und SetImageList.
    Vorerst mein Code:
    Hiermit lad ich die ICONs aus der Ressource in eine ImageList:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    CImageList l;
        HICON hIcon;
        l.Create(16,16,TRUE,6,10);
        hIcon = ::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1));
        l.Add(hIcon);
        hIcon = ::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON2));
        l.Add(hIcon);
        hIcon = ::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON3));
        l.Add(hIcon);
        hIcon = ::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON4));
        l.Add(hIcon);
        m_tree.SetImageList(&l,LVSIL_NORMAL);

    So jetzt hab ich halt ne TreeControl mit Namen m_tree, und setzte halt wie folgt immer die Items ein:
    Code :
    1
    
    m_tree.InsertItem(data,1,1,root);

    Die Items werden auch schön angezeigt, da wo Sie hin sollen. Vor den Items sind nun aber 16 mal 16 Pixel große weiße Felder. Ich wüsste jetzt gerne, wo der Fehler liegt, da ich einfach den Fehler nicht finde. Ich hab bereits auf über 20 verschiedenen Seiten sogar Anleitungen noch gefunden, aber die sagen mir auch nicht mehr als ich schon vorher wusste.
    Zu den Seiten gehören:
    http://www.functionx.com/visualc/app...s/explorer.htm
    http://www.codeproject.com/KB/cpp/VbNetExpTree.aspx
     
    MFG Scipio
    Ein Danke für hilfreiche Antworten ist gern gesehen.

  2. #2
    Avatar von SCIPIO-AEMILIANUS
    SCIPIO-AEMILIANUS SCIPIO-AEMILIANUS ist offline aka DonMahallem
    Registriert seit
    Mar 2007
    Ort
    Saxonburg(Pa)
    Beiträge
    375
    Inzwischen bin ich schon nen Stückchen weiter:
    Mit
    Code :
    1
    
    m_tree.SendMessageA(WM_PAINT,NULL,NULL);
    Direkt nach dem hinzufügen des Items schaff ich zumindest die Root Elemente mit Icons zu versehen. Nun aber wenn ich die ausfahre, sind in den unteren die Icons wieder weg. Und selbst wenn ich in OnItemExpanded SendMessage aufrufe, werden keine Icons mehr weiter angezeigt.
     
    MFG Scipio
    Ein Danke für hilfreiche Antworten ist gern gesehen.

  3. #3
    Avatar von pschilling
    pschilling pschilling ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Duisburg (NRW)
    Beiträge
    192
    Hi,

    also wenn du das wirklich so gecoded:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
        CImageList l;
        HICON hIcon;
        l.Create(16,16,TRUE,6,10);
        hIcon = ::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1));
        l.Add(hIcon);
    .
    .
    .

    dann bedeutet das, das du eine lokale Variable (l) innerhalb einer Funktion deklariert hast, die nach Verlassen der Funktion nicht mehr gültig ist !

    Halte dir stattdessen die Image-List als Membervariablen deiner Klasse, in der sich auch dein TreeCtrl befindet und benamse die auch ordentlich

    Dann kannst du dir auch den Aufruf von

    m_tree.SendMessageA(WM_PAINT,NULL,NULL);

    sparen..

    Schönen Gruß,

    Pit
     
    Der Computer wird das tun, was du programmierst - nicht das, was du willst ;-)

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 11.01.11, 21:40
  2. Antworten: 4
    Letzter Beitrag: 22.03.06, 20:50
  3. Antworten: 0
    Letzter Beitrag: 06.10.04, 14:03
  4. PROBLEM! Pinnacle 2 GB Begrenzung Windows 2000 DC 50 PROBLEM!
    Von hennym im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 6
    Letzter Beitrag: 17.09.03, 22:09
  5. Antworten: 6
    Letzter Beitrag: 13.06.02, 12:29