# Button-Farbe ändern



## Nabi (26. Juli 2006)

HI,
Ich versuche ein Button ein farbe zu geben (Hintergrundfarbe) durch SendMessege aber es funktioniert nicht

SendMessage(hStart , SetBkColor(hDC,RGB(0,255,0)) , 0 , 0 ); // Nichts geändert

Button:

```
hStart = CreateWindowEx (
            NULL,
            "BUTTON",
            "Start",
            WS_VISIBLE |BS_PUSHLIKE|BS_VCENTER|WS_CHILD|BS_TEXT ,
            900,0,80,30,
            hWnd,
            (HMENU)ID_START,
            GetModuleHandle(NULL),
            NULL
            );
```


----------



## Flegmon (26. Juli 2006)

Nabi hat gesagt.:
			
		

> SendMessage(hStart , SetBkColor(hDC,RGB(0,255,0)) , 0 , 0 ); // Nichts geändert



Wie bitte sollte das Funktionieren?

Der 2. Parameter von SendMessage ist die Nachricht an das Fenster. SetBkColor gibt keine Nachricht zurück sondern einen Wert, der der alten Hintergrundfarbe entspricht.

Ich weiß nicht ob es einfach ne Funktion dazu gibt die Farbe umzustellen.

Aber es ist auf jedenfall möglich Buttons mit Bildern zu versehen.


----------



## jokey2 (27. Juli 2006)

Ich denke, das Einfachste wird es sein, wenn Du Dir den Device Context des Button holst und dort die Hintergrundfarbe setzt, bevor Du ihn anzeigst.


----------



## Nabi (27. Juli 2006)

Schön wenn es so einfach wäre, Ich habe versucht mit

```
hDC=GetWindowDC(hStart);
    SetBkColor(hDC,RGB(255,0,0));
InvalidateRect(hStart,NULL,TRUE);
```

Background soll erased sein mit RGB ( 255,0,0) aber wieder nichts.


----------



## MCoder (27. Juli 2006)

Buttons sind in Bezug auf Farbgestaltung u.ä. leider ein wenig umständlich zu handhaben.
Du müsstest dem Butten den Style BS_OWNERDRAW verpassen und kannst dann auf die Message WM_DRAWITEM reagieren. Allerdings muss dann der komplette Button inklusive aller Zustände (normal, gedrückt, deaktiviert) gezeichnet werden. Ist also mit einigem Aufwand verbunden.

Gruß
MCoder


----------



## ToDu (31. Juli 2006)

Hi,

schau mal hier http://www.codeproject.com/buttonctrl/colorbox.asp.


MFG
ToDu


----------

