Transparente farbe

Hallo,

ich arbeite bisher mit befehlen folgender art

hintergrund=CreateSolidBrush(RGB(255,255,255))

in denen ich verschiedene farben, z.b. zum ausfüllen von rechtecken verwenden kann. gibt es genauso auch eine transparente farbe, damit es z.b. so aussieht als hätte ich eine farbige glasscheibe über etwas anderem drüber?

vielen dank, physikus

Servus

hintergrund=CreateSolidBrush(RGB(255,255,255))

Um einen Alphakanal, der die Transparenz beschreibt, verwenden zu können musst du das modernere GDI+ anstatt des klassischen GDI verwenden.
Für dein Problem sind die Klassen Color, bzw SolidBrush verantwortlich:
http://msdn.microsoft.com/en-us/library/ms534427.aspx
http://msdn.microsoft.com/en-us/library/ms534508.aspx
Das Problem dabei ist jedoch, dass GDI+ auf Klassen basiert und du somit auf C++ angewiesen bist. Verwendest du aber C so weiss ich nicht wie du mit der Windows API an einen Alphakanal kommst.
Liebe Grüße. Alex

Hallo Physikus

hintergrund=CreateSolidBrush(RGB(255,255,255))

in denen ich verschiedene farben, z.b. zum ausfüllen von
rechtecken verwenden kann. gibt es genauso auch eine
transparente farbe,

Wenn du die Rectangle() oder auch die Polygon() aufrufst, ist der aktuelle Brush (der im HDC) entscheidend für die Hintergrundfarbe.
Wenn das nun transparent sein soll, ist das keine grosse Sache:

HBRUSH makeNullBrush()
{
 const tagLOGBRUSH LogBrush = {BS\_NULL}; 
 return CreateBrushIndirect(&LogBrush);
}

Der will natürlich im DC selektiert sein, und passt. Wenn es ohne Rand sein soll, kannst du auch einen Null-Pen verwenden (die CreatePen mit PS_NULL statt PS_SOLID).

lG
Martin B