UserControl Background transparent?

08/09/2012 - 15:02 von R.Kantas | Report spam
Ich kriege zwar eine Form transparent hin, nicht aber ein Usercontrol:

ret = GetWindowLong(hWnd, GWL_EXSTYLE)
ret = ret Or WS_EX_LAYERED
SetWindowLong hWnd, GWL_EXSTYLE, ret
SetLayeredWindowAttributes hWnd, ColorTiMakeTransparent, 0, LWA_COLORKEY

Liegt's am Samstag, an mir oder an beiden...?
 

Lesen sie die antworten

#1 Heinz-Mario Frühbeis
08/09/2012 - 15:22 | Warnen spam
"R.Kantas"...
Ich kriege zwar eine Form transparent hin, nicht aber ein Usercontrol:

ret = GetWindowLong(hWnd, GWL_EXSTYLE)
ret = ret Or WS_EX_LAYERED
SetWindowLong hWnd, GWL_EXSTYLE, ret
SetLayeredWindowAttributes hWnd, ColorTiMakeTransparent, 0, LWA_COLORKEY



Du hast also das UC auf einer "gelayerten" Form?
Wenn ja, dann hast du LWA_COLORKEY angegeben. Das bedeutet AFAIK, daß du das
UC auch mit der angegeben Farbe "einfàrben" musst. IIRC sollte da
'BackColor' reichen, wenn nicht, dann FloodFill mit entsprechender Farbe
'ColorTiMakeTransparent'.
Alles andere und andersfarbige bleibt dann sichtbar. Wenn du jetzt noch
Controls auf dem UC hast, brauchst du diese auch nur mit
ColorTiMakeTransparent "einfàrben" um sie transparent zu machen.

Allerdings solltest du IIRC anstatt
SetLayeredWindowAttributes hWnd, ColorTiMakeTransparent, 0, LWA_COLORKEY

SetLayeredWindowAttributes hWnd, ColorTiMakeTransparent, 255, LWA_COLORKEY

nutzen, denn sonst siehst du gar nix. (255 kann auch 220 sein, oder so; aber
0 ist komplett transparent)

Wenn nein, dann klappt das nicht.

Liegt's am Samstag, an mir oder an beiden...?



K. A., aber wenn, dann an 'beidem' <g> SCNR

Ich hoffe, daß das so Impromptu passt und
mit Gruß
Heinz-Mario Frühbeis

Ähnliche fragen