Hintergrundfarbe eines textfeldes ändern
-
Drück bitte wiederholen, das ist kein Fehler sondern ein "du hast da Mist gemacht, guck mal" von der MFC.
Dann zeig den Code, wo er steht.
-
er bleibt bei dieser zeile stehen
ASSERT(m_hObject == NULL);
kannst du was damit anfangen?
-
Da ist schon was da, was nicht da sein darf.
Um zu sagen, WAS schon da ist, müßte ich den Aufrufstack kennen (welche Zeile ist die aus deinem Code?) und die Funktion um den ASSERT herum.
Ich vermute, du machst ein zweites Mal CreateSolidBrush ohne ein DeleteObject dazwischen.
-
hey du kennst dich ja gut aus ;-)...
kaum schreibt man ein deleteobject dazwischen, schon läufts wieder...
aber es wird immer noch ned weiss....
-
Das mit dem DeleteObject hatte ich dir aber geschrieben, lies mal weiter oben.
Kommt er überhaupt in die Funktion? Setz mal einen Breakpoint rein oder ein TRACE (also in die if, außerhalb kommt er mit Sicherheit lang...).
-
nein er kommt nicht in die funktion rein...
-
Hast du es in die Messagemap eingebunden?
Ist die ID richtig?
Mach mal "Alles neu erstellen".Wenn es dann immer noch nicht geht bin ich langsam ratlos.
-
hallo
erstmal die gute nachricht...
es wird endlich mal die HBRUSH funktion aufgerufen.
Allerdings scheitert er dann an der if abfrage. ich hab die ID 1:1 aus dem Wizard rauskopiert. die muss stimmen.ja ich habs in die messagemap eingebunden
ja ich hab alles neu erstellt
-
komisch...
wenn ich die if-abfrage mit zugehörigen klammern weglasse und einfach nur
m_brush zurückgebe, werden die ganzen editfelder gefärbt...
so falsch kann der code gar nicht mehr sein... muss halt "nur" noch das static textfeld treffen...aber wie...
-
ok hab das problem gelöst.
den grund will ich aber nicht für mich behalten ,-)mein fehler lag hier
HBRUSH hbr = MeinDialog::OnCtlColor(pDC, pWnd, [b]UINT nCtlColor[/b]);
ich hab bei nCtlColor nicht CTLCOLOR_STATIC eingetragen...
kaum gemacht, schon läufts...
ich danke dir für deine hilfe @estartu_de
-
Gerne geschehen.
Ich wäre aber auch nie darauf gekommen, dass du OnCtlColor selber aufrufst, da das eigentlich automatisch passiert.