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.
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:
Cpp:
Hat jemand eine Idee was ich bei meinen Ansätzen falsch mache oder eine bessere Idee?
Gruß und Dank
Beli
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.
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:
...
virtual void OnDrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
...
Code:
void CColorComboBox::OnDrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{...}
Gruß und Dank
Beli