Achtergrond Window

Status
Niet open voor verdere reacties.

brabox

Gebruiker
Lid geworden
6 jan 2010
Berichten
5
Dit gaat niet over een console application maar een win32/winapi application.

Ik heb een vraag over de achtergrondkleur van windows. Hiermee bedoel ik dit soort windows:

Code:
CreateWindow(TEXT("STATIC"), "text!", WS_CHILD | WS_VISIBLE, 20, 400, 70, 30, hwnd, (HMENU) ID_OUTPUT, NULL, NULL);

of

Code:
CreateWindow(TEXT("button"), TEXT("RadioKnop"),WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 20, 60, 214, 16, hwnd, (HMENU)ID_RADIOBUTTONLINEAR , g_hinst, NULL);


Als ik deze op een witte achtergrond plaats, krijgen ze een grijze vakje achter de text. Is er een manier om deze dezelfde kleur als de achtergrond te geven, of zelfs de achtergrond van de windows transparant te maken?


Grz: Bram
 
Laatst bewerkt:
Ik heb een beetje rondgekeken, maar zonder succes. Vaak worden er popup windows of de main window bedoelt.
Voor de zekerheid heb ik een screen hieronder geplaatst zodat jullie zeker weten waar het precies over gaat.

achtergrondwindow.jpg



Ik wil dus zorgen dat dat grijs ook (in dit geval) geel kan worden.
 
Laatst bewerkt:
Je kan eens kijken naar WM_CTLCOLORBTN voor de button en WM_CTLCOLORSTATIC voor de static.
In de windowproc van de parent van de button doe je dan iets als[cpp]
case WM_CTLCOLORBTN
{
HDC hdc;
hdc = (HDC) wParam;
SetBkColor(hdc, RGB(255,255,0) );
return (LRESULT)brush;
}[/cpp]
Daarbij is brush van het type HBRUSH en bepaalt de kleur van de achtergrond.
 
Laatst bewerkt:
WM_CTLCOLORSTATIC werkt!

De texten die ik in WM_PAINT met TextOut(); heb gemaakt hebben wel nog een grijze achtergrond. Hoe zou ik deze ook kunnen verkleuren?
 
De achtergrondkleur van de tekst kan met SetBkColor() ingesteld worden net zoals in het voorbeeldje uit de eerdere post. Eerst SetBkColor() en dan TextOut().
De code wordt dan iets als [cpp]
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
SetBkColor(hdc, RGB(255,255,0) );
TextOut(hdc, 0,0, "Hallo",5);
EndPaint(hwnd, &ps);
break;[/cpp]
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan