CtlColor wird nicht aufgerufen
-
Hallo,
vielleicht ein triviales Problem: Ich habe mir eine Klasse geschrieben, die CStatic um Text- und Hintergrundfarbe "erweitert". Dazu wird ja automatisch von Windows CtlColor aufgerufen, wenn die Hintergrund bzw. Textfarbe "angefordert" wird.
Wenn ich das Control so erzeuge, das der Parent der zugehörige Dialog ist, so wird die Methode auch einwandfrei aufgerufen. Ist das Parentwindow nicht der Dialog, sondern z.B. ein anderes Control, so wird die CtlColor Methode nicht mehr aufgerufen.Was muss ich nun tun, damit die Methode aufgerufen wird?.

-
Möchtest du einfach Text- und Hintergrundfarbe ändern? Nutze doch OnPaint oder EraseBkgnd. Den Zusammenhang warum nur ein Dialog OnCtlColor aufruft/weiterleitet würde mich auch interesieren.
Gruß Jochen
-
Verstehe ich nicht ganz. Hast Du Reflection verwendet?
http://msdn2.microsoft.com/en-us/library/eeah46xd(vs.80).aspx
-
Ja, habe ich:
[code] ON_WM_CTLCOLOR_REFLECT() [/code]BTW: OnErasebackground wird aufgerufen, danke für den Tipp, Jochen. Aber es würde mich dennoch interessieren, wieso das nur klappt, wenn das Parentfenster der Hauptdialog ist.
-
-
Danke für den Link Martin, das erklärt einiges.
