Dieses Programm ist ein kleines MFC-Programm das zeigt wie man
farbige Dialogelemente realisieren kann.
Das geschieht in der Funktion OnCtlColor() in der Datei "./ColorDialog/ColorDialogDlg.cpp".
Jedes Dialogelement sendet vor dem Zeichen eine WM_CTLCOLOR??? Nachricht an sein
Elternfenster. Das Elternfenster kann dann die Textfarben und
Hindergrund-Brushes bestimmen. Diese WM_CTLCOLOR??? Nachricht wird bei MFC
Programmen in der OnCtlColor() Funktion ausgewertet.
Bei Tasten funktioniert dieses Verfahren nicht. Das Ändern der Button-Farbe wird erreicht in dem die Taste von Hand in einer
eigenen Funktion gezeichnet
wird. Dabei wird eine neue Fensterfunktion (ButtonProc) für WM_PAINT mittels Sub-Classing
bei der Taste installiert:
... pOldProc = (WNDPROC)GetWindowLong(GetDlgItem(IDOK)->m_hWnd,GWL_WNDPROC); SetWindowLong(GetDlgItem(IDOK)->m_hWnd,GWL_WNDPROC,(LONG)ButtonProc); ...
Anton Zechner |