Windowsstandardfarbe lesen u- setzen



  • Hallo!
    Ich möchte die Windowsstandardfarbe Weiß einer CListBox auf die Windowsstandardfarbe für Dialograhmen, Buttons usf. Grau ändern.
    Wie lese ich die Windowsstandardfarben aus und wie setzte ich die
    Farben einer CListBox?

    Gruß, Lothar.



  • Hallo.

    Solltest Dir mal die Funktion OnCtlColor() ansehen.
    Dort kann man die Farbe für Steuerelemente setzen. Wird galube immer abgearbeitet, wenn der Dialog neu gezeichnet wird.

    Oli



  • Hallo,

    HBRUSH COberflche_alkDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    
    	// TODO: Attribute des Gerätekontexts hier ändern
    	if (pWnd->GetDlgCtrlID()== IDC_Ausgabe) //hir die ID des elemends was du möchtest
        {     
            HBRUSH B = CreateSolidBrush(RGB(0,0,0)); 
    		pDC->SetTextColor(RGB(0,255,0));
    		pDC->SetBkColor(RGB(0,0,0));
            return (HBRUSH) B; 
        }
    	// TODO: Anderen Pinsel zurückgeben, falls Standard nicht verwendet werden soll
    	return hbr;
    }
    

    MFG TaccoGo



  • Gibt dieser Code nicht einen Speicherfresser?
    Die Variable B muß ja auch wieder irgandwann gelöscht werden bzw. der Speicher wierder freigegeben werden.
    CreateSolidBrush im Konstruktor aufrufen und im Dekonstruktor die Variable B mit DeleteObject(B) löschen.

    Oli



  • oh,

    das habe ich leider übersehen Danke!

    MFG TaccoGo


Anmelden zum Antworten