Textfarbe bei ctrl List
-
Hallo
ich habe ein kleines Problem mit der Textfarbe mit abhängigkeit
des ListeneintragesBild unter
[url] http://www.vossy123.de/Schriftfarbe.htm [/url]
Bei Codeguru gibt es da auch nichts.
Den ganzen Text in einer anderen Farbe ändern ist nicht das problem.Hier mal der Code wo die Listeneinträge erstellt werden
for (int abc = 0;abc < Datenanzahl ;abc++) { Aufgabe_gestellt = Text[abc][0] + " + " + Text[abc][1] + " = " + Text[abc][2]; Druck[abc][0] = Aufgabe_gestellt; Vorschlag = Text[abc][3] + " + " + Text[abc][4] + " = " + Text[abc][5]; Druck[abc][1] = Vorschlag; AusgabeZ1.Format("%d",Aufgabe[abc][0]); AusgabeZ2.Format("%d",Aufgabe[abc][1]); AusgabeE.Format("%d",Aufgabe[abc][2]); AufgabeZusammen = AusgabeZ1 + " + " + AusgabeZ2 +" = " + AusgabeE; Druck[abc][2] = AufgabeZusammen; Druck[abc][3] = Text[abc][6]; NummerID.Format("%d",abc+1); if ( Text[abc][6] == "ja") { Anzahl_Fehler++; } m_Sicht1.InsertItem(abc,(LPCTSTR)"",abc); m_Sicht1.SetItemText(abc,0,(LPCTSTR)NummerID); m_Sicht1.SetItemText(abc,1,(LPCTSTR)Aufgabe_gestellt); m_Sicht1.SetItemText(abc,3,(LPCTSTR)Vorschlag); if ( m_listen_Add == 1) { m_Sicht1.SetItemText(abc,5,(LPCTSTR)AufgabeZusammen); } m_Sicht1.SetItemText(abc,7,(LPCTSTR)Text[abc][6]); m_Sicht1.SetItemText(abc,8,(LPCTSTR)Text[abc][7]); }
gebt mir mal einen Tip
Ich habe es versucht in die Zelle ein Bitmap zu laden aber
das gefällt mir nicht. Ich will es mit der Schrift haben die sich nur
bei << nein >> auf rot ändert.Danke Vossy
-
2 Links
http://www.codeguru.com/listview/CustomDraw.shtml als customdraw
Beides müsste Dein Problem lösen
-
da muß ich dich leider enttäuschen.
Beide möglichkeiten eignen sich nicht.
Mit der einen habe ich auch schon experimentiert aber ich
kam leider nur soweit das ich objecte implementieren kannVossy
-
habe mir eine möglichkeit erstellt mit ein paar wenigen
änderungen kann man sich das auch für den Hintergrund
erstellenhier mein Code
void CSicht_Text::SetTextFarbe(int nItem,int nSubItem,COLORREF txtColor,bool redraw) { LVITEM pItem; InitLVITEM(nItem,0,&pItem); LS_item * lpLS_item = NULL; lpLS_item = (LS_item*) pItem.lParam; if(nSubItem > 0) { lpLS_item = lpLS_item->subitems[nSubItem - 1]; } lpLS_item->txtColor = txtColor; if(redraw) { CListTextFarbe::Update(nItem); } }
Code sagt eigendlich alles
Wer dennoch eine genaue Beschreibung wünscht der melde sichVossy
-
schreib ne erklärung dazu, dann pack ichs in die FAQ.
-
@Vossy
Also entweder drückst Du Dich völlig falsch aus mit dem, was Dein Problem ist, oder der Code bei codeguru gefällt Dir netvoid CListCtrlEx::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult) { //for this notification, the structure is actually a // NMLVCUSTOMDRAW that tells you what's going on with the custom // draw action. So, we'll need to cast the generic pNMHDR pointer. LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR; switch(lplvcd->nmcd.dwDrawStage) { case CDDS_PREPAINT: *pResult = CDRF_NOTIFYSUBITEMDRAW; // ask for subitem notifications. break; case CDDS_ITEMPREPAINT: *pResult = CDRF_NOTIFYSUBITEMDRAW; // ask for subitem notifications. break; case CDDS_ITEMPREPAINT|CDDS_SUBITEM: // recd when CDRF_NOTIFYSUBITEMDRAW is returned in { // response to CDDS_ITEMPREPAINT. *pResult = CDRF_DODEFAULT; int iCol = lplvcd->iSubItem; int iRow = lplvcd->nmcd.dwItemSpec; if((iRow & 1) && (iCol & 1)) { lplvcd->clrTextBk = RGB(255, 0, 0); lplvcd->clrText = RGB(255, 255, 0); *pResult = CDRF_NEWFONT; } break; } default:// it wasn't a notification that was interesting to us. *pResult = CDRF_DODEFAULT; } }
Dieser Code setzt doch haargenau die Farbe des Textes für jede ungerade Zeile und Spalte auf gelb.
-
hmmmm
auch ne möglichkeit aber ich müßte
if((iRow & 1) && (iCol & 1))
neu inplementieren müssen und da finde ich meine
Möglichkeit besser.Dennoch eine gute Idee aber letztendlich für mich ungeeignet.
Und wie sagt ihr ihr immer kopieren kann jeder verstehen
sollte man es auch.Du dEUs für eine komplette Klassenbeschreibung mit allen möglichkeiten
da wird es für die FAQ zu umpfangreich.
Gabt Ihr die möglichkeit Dateien einzubinden mit einen Link.
Wenn dann schicke ich dir die komplette Klassen cpp und die HeaderVossy
-
Vossy:
Ne du. Ich meinte eigentlich, du sollst deine Funktion erklärenNicht mit allen Möglichkeiten und so ...