Wie mache ich beim Text(DrawText) den Hintergrund Grau ?
-
Hallo
Ich erzeuge einen Font:
CFont pFont, *pOldFont; pFont.CreateFont(11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, 0, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_ROMAN, "Small Fonts"); SetFont(&pFont); pOldFont = dc.SelectObject(&pFont); dc.SetTextColor(RGB(0,0,0)); DWORD dwText = DT_CENTER; dc.DrawText(str,rectText,dwText); dc.SelectObject(pOldFont);Wenn ich den Text Zeichne ist der Hintergrund Weiß.
Also habe ich es mit dc.SetBkMode(TRANSPARENT); versucht aber dann bleibt bei jedem Invalidate der alte Text erhalten und der neue Text wird übschrieben so dass einen Vermischung entsteht??
Wie kann man das umgehen ?
Anderes hab ich mir gedacht den Hintergrund mit SetBkColor(...) Grau zu machen aber welches Grau nehme ich da ? Was ist wenn der User mal die Hintergrundfarbe in der Systemeinstellung ändert ?
Wo bekommt man diesen Wert ?Gruß
Martin
-
Hallo,
mit GetSysColor holt man sich die Farbe für das jeweilige Anzeige-Element:
http://msdn.microsoft.com/en-us/library/ms724371(VS.85).aspx
MfG,
Probe-Nutzer
-
Hi
Ja GetSysColor kenn ich aber da finde ich keine Hintergrundfarbe.
COLOR_BACKGROUND ist z.b Schwarz ..
Alle die ich ausprobiert habe passen von der Farbe nicht ...
COLOR_WINDOW, COLOR_WINDOWFRAME.Oder muss man das speziel aufrufen ?
Grüße
Martin
-
Vielleicht das:
COLOR_BTNFACE = Face color for three-dimensional display elements and for dialog box backgrounds.

-
Hi
Hmm so heißt das
... Ja das sieht richtig aus ... Thx ... 
Grüße
-
Wenn man es ganz richtig mach, sendet man einfach an das Parent ein WM_CTLCOLORDLG. Dadurch werden die Systemfarben gesetzt und man bekommt den BK-Brush!
-
Hi
Danke für die Info? Aber welchen Vorteil hat man wenn man ein Message sendet ?
Grüße
Martin
-
Die Nachricht hat den Vorteil, dasmein Control in jedem Parent funktioniert auch wen dieses abweichende Systemfarben hat.
Auf diesem Weg bestimmt auch ein Edit Control seine Hintergrundfarbe. Es fragt eben das Parent!
-
Achso d.h wenn ich im Parent die Systemfarbe ändere hat auch mein Control dieselbe Hintergrundfarbe ?
Sonst würde ich die vom System bekommen.Gruß
Martin
-
martin_zi schrieb:
Achso d.h wenn ich im Parent die Systemfarbe ändere hat auch mein Control dieselbe Hintergrundfarbe ?
Sonst würde ich die vom System bekommen.Genau! Deshalb sollt eman immer einfach den Weg über die Nachrichten gehen.
-
Hi
Super danke. Dann mach ichs lieber bewusst so. Man weiß ja nie wann man das mal braucht! und doch mal nutzt

Grüße