Farbe eines untergeordneten Dialogs ändern
-
Hallo,
ich möchte eines untergeorneten Dialogs die Farbe ändern in der FAQ habe ich bisher nur gelesen das man in Initinstance die Farbe ändern kann. Das Problem liegt aber daran das ich in der von CDialog abgeleiteten Klasse keine Initinstance Funktion habe. Weis da jemand Hilfe zu ?
Danke schon mal
-
evtl. OnInitDialog /WM_INITDIALOG
-
Hi Cool,
ich weiß nicht, ob´s dich weiterbringt, aber möglicherweise könntest du in der OnPaint-Funktion des neuen Dialoges diesen einfach in der gewünschten Farbe zeichnen??
z.B.:
void C<DeinZweiterDialog>::OnPaint() { CPaintDC dc(this); // device context for painting CRect rect; CBrush m_Brush; colref = RGB(50,65,220); m_Brush.CreateSolidBrush(colref); GetClientRect(&rect); dc.FillRect(&rect,&m_Brush);Vielleicht bringts dich weiter, so hab ich´s gelöst, diesen Ansatz aber später nicht mehr weiter verfolgt.
Gruß,
Fidji !!!!
-
so könnte man das auch realisieren:
WM_CTLCOLOR - Message im zweiten Dialog per Class-Wizard hinzufügen:
darin dann:
HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); HBRUSH hbrBackground = CreateSolidBrush( RGB(255, 255, 0) ); // gelber BRUSH if(nCtlColor == CTLCOLOR_DLG) // wenn der Dialog zum Zeichnen dran ist einfach den gelben BRUSH anstelle des Default-Brush zurückgeben { return hbrBackground; } return hbr; }Bei mir ist der ZweitDialog der AboutDlg !!!
MfG veganza
[ Dieser Beitrag wurde am 09.07.2003 um 12:44 Uhr von veganza editiert. ]
-
Stimmt Veganza, ist wahrscheinlich die bessere Alternative.
Ist außerdem auch leichter zu erweitern habe ich festgestellt, wenn man
mehrere Dialoge in verschiedenen Farben darstellen will (z.B. Designwechsel
nach Buttonklick).Gruß,
Fidji !!!!