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