CListCtrl - Hintergrund einer Zeile färben
-
Hallo zusammen!
Ich hab hier mal wieder ein Problem:
ich empfange Telegramme von 2 Seriellen Schnittstellen. Und protokolliere diese Telegramme in einem CListCtrl (ReportStyle)sprich pro Zeile ein Telegramm.
Jetzt möchte ich farblich hervorheben, von welcher Schnittstelle (COM 1 z.B. blauer Hintergrund in der Zeile oder COM2 grüner Hintergrund in der Zeile) das jeweilige Protokoll stammt. Sowie bei fehlerhaften Protokollen (falsche Checksumme oder andere Probleme) eine Zeile mit kurzer Meldung in rot.Bei meiner Abfrage zähle ich meinen index mit, der im Grunde die Zeile darstellt. Jetzt müsste ich nur wissen, wie ich einzelne Zeilen mit einer von mir bestimmten Hintergrundfarbe füllen kann.
Gab hier schon mal nen ähnlichen Beitrag, der hat mir allerdings in keinster Weise geholfen. Und die FAQ gibt mir auch nix brauchbares her. Bei Codeproject hab ich auch nix gefunden was mir hilft
Danke im Voraus!
-
Selbst habe ich es zwar noch nicht gemacht, aber ein Kumpel.
Du mußt die Zeile im Prinzip selbst zeichnen.
Dazu mußt Du die DrawItem Funktion überschreiben. Viel Spaß!Ich persönlich würde stattdessen lieber auf das Control verzichten
und die Liste mit CDC::DrawText Funktionen nachbauen.
Schwerer als DrawItem zu überschreiben dürfte das auch nicht sein.Grüße
Echo
-
NM_CUSTOMDRAW ist IMHO eleganter als das Ownerdraw.
Lies mal diesen Artikel:
http://www.codeproject.com/listctrl/lvcustomdraw.aspDes weiteren gibt es unter www.codeguru.com auch einen guten Artkel dazu.
http://www.codeguru.com/Cpp/controls/listview/customdrawing/article.php/c4195
http://www.codeguru.com/Cpp/controls/listview/customdrawing/article.php/c4199
-
Wär das färben der Schrift einfacher?