Hintergrundsfarbe im Formular
-
Bei welchem Ereigniss kann man die Hintergrundsfarbe im Formular setzen bevor Elemente gezeichnet werden.
Funktioniert das dann mit SetBKColor des DCs?
-
Da du von einem Formular schreibst, nehme ich mal an das es sich um eine von CFormView abgeleitete Klasse handelt. Wie bei jedem "vernünftigen" Fenster wird der Hintergrund über die Behandlung der Windows Botschaft WM_ERASEBKGND gezeichnet ( oder gelöscht ). Folglich solltest du in deiner Klasse auch auf diese Nachricht reagieren:
BEGIN_MESSAGE_MAP(CFormTestBkgndView, CFormView) ON_WM_ERASEBKGND() END_MESSAGE_MAP() BOOL CFormTestBkgndView::OnEraseBkgnd( CDC* pDC ) { CRect rcClient; GetClientRect( rcClient ); pDC->FillSolidRect( rcClient, RGB(225,225,127 ) ); return TRUE; }Vielleicht ist dir damit etwas geholfen.
-
Falls es sich um eine CDialog handelt http://www.coding-help.de/dialoge_allg.html#Farbiger_Dialog
-
Siehe auch:
http://www.microsoft.com/msj/0597/c0597.aspx
-
ja es handelt sich um ein CFormView. Jedoch benutzt ich das eVC++ für Pocket PCs und da ist kein EraseBkgnd Ereignis dabei. Gibts noch ne andere Möglichkeit?
-
Die Nachricht WM_ERASEBKGND wird im ClassWizzard bei einer CFormView - Klasse nicht angezeigt. Du musst sie schon manuell hinzufügen wie im oben genannten Beispiel. Dann funktioniert das auch unter WinCE. Lt. MS Dokumentation wird die Nachricht auch unter Windows CE unterstützt. Siehe MSDN: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcesdkr/html/wcesdkrwm_erasebkgnd.asp