?
rommi schrieb:
Danke an Alle!
@guggstdu:
Hast du mal ein funktionierendes Beispiel für mich? Benötige eigentlich nur ein Textfeld in meinem Hauptfenster wo ich die Infos ausgeben kann und bei Bedarf bestimmte Infozeilen in einer anderen Farbe. Mehr muss dat Dingens garnicht können (zumindest vorerst lol). Oder is es doch besser mit dem RichEdit-Feld(funzt das überhaupt noch unter Win98?)zu arbeiten. Am liebsten wäre mir ne relative unkomplizierte (so wenig Code wie möglich) Lösung die auch noch auf älteren OS-Version (ab Win 98) funktionieren..
Liebe Grüsse, rommi
Was verstehst du unter Codebeispiel? Der Ablauf für Listview wäre folgender: Listview erstellen, Items einfügen, dann den Event NM_CUSTOMDRAW auswerten und selbern zeichen. Code sollte in etwa so gestrickt sein:
Eventhandler
case NM_CUSTOMDRAW:
return CustomDraw_Listview(hWnd, lParam);
Customdrawfunktion
int CustomDraw_Listview(HWND hWnd, LPARAM lParam){
LPNMLVCUSTOMDRAW cd;
cd = (LPNMLVCUSTOMDRAW)lParam;
switch(cd->nmcd.dwDrawStage){
case CDDS_PREPAINT:
return CDRF_NOTIFYITEMDRAW;
case CDDS_ITEMPREPAINT:
return CDRF_NOTIFYSUBITEMDRAW;
case CDDS_SUBITEM | CDDS_ITEMPREPAINT:{
HDC hDC;
COLORREF Text = irgendwas, TextBk = irgendwas;
hDC = cd->nmcd.hdc;
SetBkColor(hDC, TextBk);
SetTextColor(hDC, Text);
:
:
:
und
soweiter
und
sofort
:
:
:
:
}
}
return CDRF_DODEFAULT;
}
Ansonsten zu Richedit kann ich dir nur sagen, das klappt auch unter Win9x, nur hab ich Richedit noch nie einsetzen müsee, haher kann ich dir diesbezüglich keine Ratschläge geben. Achja wenn du nach CDDS_*** googels solltest du volständigen Code finden, ich wollte dir nur nicht alle Zeilen aus meiner Application rauskiopieren.