Farbe auf Dialog ändern



  • Hi!

    Ich hab ne ganz simple Frage, bekomms trotzdem nicht hin: Und zwar möchte ich nur den Hintergrund von einem Dialog ändern, z.B. weiß, ... .
    Wer kann mir da helfen?

    Danke TotalEasy 🙂 🙂 🙂



  • In die InitInstance die Funktion SetDialogBkColor(); aufrufen, zB. so:

    SetDialogBkColor(RGB(0, 0, 0), RGB(255, 255, 255));
    

    Der erste Parameter ist für die Hintergrundfarbe, der zweite für die Schriftfarbe.



  • Komisch,
    die Fkt. habsch gefunden in der Header, aber ich kann sie nicht ansprechen.

    Und wie soll das fkt.?

    Mfg TotalEasy 🙂



  • hmmm, ich bekomme es grade auch nicht hin, werde später nochmal gucken.
    Ansonsten kannst du das hier ausprobieren: http://www.mindcracker.com/mindcracker/c_cafe/controls/color2.asp



  • WM_CTLCOLOR Nachricht mit Klassenassistenten auswählen

    HBRUSH CDeinDialolg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    
    	// TODO: Attribute des Gerätekontexts hier ändern
    
    	switch(nCtlColor)
    	{
    	case CTLCOLOR_BTN:
    	case CTLCOLOR_STATIC:
    		pDC->SetBkMode(TRANSPARENT);
    	case CTLCOLOR_DLG:
    			return(HBRUSH) m_brBack.GetSafeHandle();
    	}
    
    	// TODO: Anderen Pinsel zurückgeben, falls Standard nicht verwendet werden soll
    	return CDialog::OnCtlColor(pDC,pWnd,nCtlColor);
    	//return hbr;
    }
    

    Membervariable protected oder private:
    hier: CBrush m_brBack;

    Und das noch in den Konstruktor, um die Farben einzustellen

    m_brBack.CreateSolidBrush(RGB(226,254,226));

    Fertig


Anmelden zum Antworten