Statischen Text färben?
-
Dann erkläre doch mal in Worten, was die Funktion machen soll.
Oder gehe einfach mal mit dem Debugger Zeile für Zeile durch deinen Code...
-
Also, ich habe einen Stundenplan mit 45 Stunden. Wenn man dann bei einer dieser Stunden auf bearbeiten klickt, dann bemerkt der Computer die ID und ein Popup öffnet sich. In diesem kann man dann Stunde, Lehrer und Raum bearbeiten und, in einer Combobox, die Farbe auswählen. ListCheck ist dafür verantwortlich, herauszufinden, welche Auswahl getroffen wurde, und je nachdem welche, die Richtig Farbe auszuwählen. Die Funktion Färben färbt dann die Drei Labels Fach, Lehrer und Raum mit der Ausgewählten Farbe.
Hoffe ihr kennt euch nun aus,
MFG
FERNman
-
Th69 schrieb:
Oder gehe einfach mal mit dem Debugger Zeile für Zeile durch deinen Code...
Habe ich schon oft gemacht, ich weiß aber nicht was das bringen soll (In meinem Fall)
MFG
FERNman
-
Dann schau dir noch mal diese Funktion an:
LRESULT Blau(HDC hdc, HWND hCtl, int ID) { if (hCtl = Stunde[ID]) { SetBkColor(hdc, fBlau); } if (hCtl = Raum[ID]) { SetBkColor(hdc, fBlau); } if (hCtl = Lehrer[ID]) { SetBkColor(hdc, fBlau); } return (LRESULT)GetStockObject(HOLLOW_BRUSH); }
Frage: Wie oft wird die BackgroundColor gesetzt? Und welchen Sinn soll das jetzt machen???
Ich bleibe dabei, daß dir die Grundlagen von C fehlen, d.h. insbesondere der Umgang mit Funktionen (und Parametern etc.)...
Und daher ist die WinAPI noch etwas zu früh für dich.
-
Ok, wenn du meinst, ich glaube es kann gut sein!
Aber ich möchte dass trotzdem noch schaffen, und diese Funktion:
LRESULT Standartfarben(HDC hdc, HWND hCtl) { if (hCtl = hText) { SetBkColor(hdc, fWeiß); return (LRESULT)GetStockObject(HOLLOW_BRUSH); } return 0; }
Funktioniert ja! Wie würdest du dass lösen? Bitte hilf mir nur mit einer Funktion, dann bist du mich los
MFG
FERNman
-
Hallo nochmals,
"Funktioniert ja!" ist eine sehr subjektive Wahrnehmung
Denn in deinem Fall bedeutet es nicht, daß der Code auch so sinnvoll ist. Denn schon dort macht die if-Abfrage (bzw. sollte ich besser if-Zuweisung schreiben) keinen wirklichen Sinn:
Du übergibst dort einen Parameter 'hCtl', den du dann als erstes gleich wieder überschreibst mit der globalen Variablen 'hText' und wenn dieser Wert ungleich null ist, dann führst du den Block aus (in der du wiederum gar nicht die Variable 'hCtl' benutzt).