NM_CUSTOMDRAW von TreeControl

jokey2

Erfahrenes Mitglied
Hallo Gemeinde!

In einem Dialog habe ich ein TreeControl. Nun möchte ich den Text der Items abhängig von einem bestimmten Wert entweder grau oder schwarz darstellen. Pronzipiell geht das ja auch, in einem TreeView habe ich so etwas ähnliches implementiert und das funktioniert auch.

Mein Problem hier ist, daß ich dazu eine NM_CUSTOMDRAW-Nachricht von dem TreeControl brauche, die kommt aber nicht.

Daher meine Frage:
Wie bringe ich das TreeControl dazu, eine NM_CUSTOMDRAW-Nachricht an das Elternfenster zu senden?
 
NAbend,

kannst du nicht einfach die OnPaint überladen und dann das dingen selbst zeichnen... Meine das hätte bei mir wunderbar geklappt.

Gruss Michael
 
Da muß ich doch dann alles selber zeichnen, oder?
Ich will doch nur die Textfarbe bestimmter Items ändern. Beim TreeView hat das schon wunderbar funktioniert.
 
Könntest recht haben.

Hab gerade mal meine alten Projekte durchsucht. Hab damals die Funktion"DefWindowProc" benutzt. Die zeichnet alles selber. Da ich mir damals den Hintergrund herausrechnen wollte um Transparenz zu erreichen. war die genau richtig.

Sorry,

Gruss Michael
 
Hallo,

also es sollte schon gehen. Wie sehen denn deine Message-Map-Einträge aus?
Es müsste so gehen, wie im folgenden skizziert:
Code:
// Deklaration
afx_msg void OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult);

// Message Map
BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
    ON_NOTIFY(NM_CUSTOMDRAW, IDC_TREE, OnCustomDraw)
        :
        :
END_MESSAGE_MAP()

// Implementation
void CMyDialog::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult) 
{
    // ...

    *pResult = 0;
}
Gruß
MCoder
 
Danke, das geht tatsächlich!
Ich hatte es vorher mit der allgemeinen OnNotify-Funktion versucht und dort auf die NM_CUSTOMDRAW - Nachricht geschaut, aber da kam sie nie an. Daher dachte ich, sie käme gar nicht und ich bräuchte das mit der Message-Map gar nicht erst zu versuchen.
Tja, da sieht man's mal wieder.... Danke nochmal.
 
Zurück