tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
526
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    beli beli ist offline Grünschnabel
    Registriert seit
    Mar 2005
    Beiträge
    3
    Hallo,
    ich versuch gerade eine (MFC) ComboBox zu schreiben, wo man den einzelnen Einträgen einen andere Farben zuordnen kann.
    Ich habe bisher 2 verschiedene Ansätze probiert, aber beide führen nicht zum gewünschten Ergebnis.

    1. Ansatz:
    HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) in der Dialog Klasse überschreiben.
    Problem:
    • Das ausgewälte wir nicht mit eingefärbt, weil es wie es scheint bei pWnd->GetDlgCtrlID() nicht die ID der Combobox zurück gibt.
    • Wahrscheinlich wird es schwer die Einträge in der Liste unterschiedlich zu färben.
    2. Ansatz:
    Eine ColorComboBox Klasse erzeugen die von CComboBox ableitet und void void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) überschreibt.
    Problem: Aus irgendeinem Grund wird die Funktion überhaupt nicht aufgerufen.

    Header:
    Code :
    1
    2
    3
    
    ...
    virtual void OnDrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
    ...
    Cpp:
    Code :
    1
    2
    
    void CColorComboBox::OnDrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
    {...}
    Hat jemand eine Idee was ich bei meinen Ansätzen falsch mache oder eine bessere Idee?
    Gruß und Dank
    Beli
     

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

    also dein zweiter Ansatz ist schon der richtige!

    Der Grund, warum deine DrawItem Methode nicht aufgerufen wird ist, weil deine Combobox eine der beiden folgenden Stile haben muss!

    CBS_OWNERDRAWFIXED The owner of the list box is responsible for drawing its contents; the items in the list box are all the same height.

    CBS_OWNERDRAWVARIABLE The owner of the list box is responsible for drawing its contents; the items in the list box are variable in height.


    Viel Spaß beim zeichnen..

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

Ähnliche Themen

  1. JList mit farbigen Einträgen
    Von wnR im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 5
    Letzter Beitrag: 19.03.10, 14:09
  2. ComboBox mit verschieden farbigen Einträgen
    Von beli im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 22.10.08, 09:17
  3. Frage zu farbigen Ebenen
    Von Jan-Frederik Stieler im Forum Photoshop
    Antworten: 3
    Letzter Beitrag: 12.04.06, 02:44
  4. ComboBox mit Einträgen
    Von UrsaMajor im Forum C/C++
    Antworten: 6
    Letzter Beitrag: 28.03.05, 10:30
  5. hover mit farbigen kasten?
    Von sds im Forum CSS
    Antworten: 2
    Letzter Beitrag: 01.02.02, 18:49