Frage zu WM_CTLCOLORBTN
-
Hab in meinen Prog. ein Button vom Stil BS_PUSHBUTTON
diesen möchte ich gerne eine andere Textfarbe und eine andere Texthintergrundfarbe zuweisen.
Dies möchte ich im Zusammenhang mit der Message "WM_CTLCOLORBTN" erreichen.
Dat klappt aber nicht so wie ich mir das vorstelle...hier ein bisschen Code...
case WM_CTLCOLORBTN: SetTextColor((HDC)wParam,RGB(255,0,0)); SetBkColor ((HDC)wParam,RGB(0,0,255)); break;
-
Ich nehme an, dass SetBkColor nicht ausreicht - schau dir aber mal den Thread aus den FAQ an
-
Kuck mal in dein PSDK rein:
PSDK schrieb:
By default, the DefWindowProc function selects the default system colors for the button. Buttons with the BS_PUSHBUTTON, BS_DEFPUSHBUTTON, or BS_PUSHLIKE styles do not use the returned brush. Buttons with these styles are always drawn with the default system colors. Drawing push buttons requires several different brushes-face, highlight and shadow-but the WM**_CTLCOLORBTN message allows only one brush to be returned**. To provide a custom appearance for push buttons, use an owner-drawn button.
-
@flenders:
Hab mir den link angeschaut, die Änderung in Verbundung mit Static od. Edit Elementen per Nachrichten wie "WM_CTLCOLOREDIT" od. "WM_CTLCOLORSTATIC"
die funzen bei mir auch alle per SetTextColor bzw. SetBkColor, joo nur bei den Buttons gehts halt nicht, aber das muss ja damit auch möglich sein da die Nachricht doch eigentlich nur dafür gedacht ist.
-
Aber eben nicht für BS_PUSHBUTTON, BS_DEFPUSHBUTTON, oder BS_PUSHLIKE Buttons! Wenn du das unbedingt willst musst du eben Ownerdraw verwenden
-
Joo... Aber warum dat so is versteh ich eigentlich
nicht wirklich, wahrscheinlich weil Bill es so wollte
Dann mach ich mal nen eigenen...MfG DANNY