Forums Neueste Beiträge
 

TransparentBlt Problem

14/01/2008 - 21:19 von Charles Panke | Report spam
Hallo zusammen,

in einem Projekt will ich icons, die sonst im
toolbar erscheinen, in pictureboxes darstellen.

Die Farbe fuer den transparenten Hintergrund ist cyan.

Wenn ich ein usercontrol dazu hernehme ist gibt es
einen Nachteil: Vom transparenten Teil bekomme ich keine
mousemove-events, click funktioniert da ebenso nicht.
Brauche ich aber...

Also versuche ich das manuell mit TransparentBlt:

Auf einem form gibt es picture1 und picture2 (picturebox)
im scalemode VbPixels, beide AutoRedraw = true.

In picture1 lade ich ein Bild:
Set Picture1.Picture = LoadPicture("Q:\test.bmp")

Erwartungsgemaess ist das Bild da, mit cyan.

Nun will ich das Bild mit zu picture2 'kopieren':

TransparentBlt Picture2.hDC, 0, 0, Picture2.ScaleWidth, _
Picture2.ScaleHeight, Picture1.hDC, 0, 0, _
Picture1.ScaleWidth, Picture1.ScaleHeight, vbCyan

In picture2 erscheint -nichts-.

Wenn ich als Ziel das form selbst nehme geht es wunschgemaess.



Geht das Kopieren von einer picturebox in die andere so nicht?

Oder gibt es eine einfache andere Moeglichkeit?
(Pixelweise auslesen, auswerten und schreiben ist keine
Option, dafuer sind es zuviele Daten.)


Danke und schoenen Abend,
-C-H-A-R-L-E-S-
 

Lesen sie die antworten

#1 Harald M. Genauck
15/01/2008 - 00:52 | Warnen spam
Hallo Charles,

in einem Projekt will ich icons, die sonst im
toolbar erscheinen, in pictureboxes darstellen.

Die Farbe fuer den transparenten Hintergrund ist cyan.

Wenn ich ein usercontrol dazu hernehme ist gibt es
einen Nachteil: Vom transparenten Teil bekomme ich keine
mousemove-events, click funktioniert da ebenso nicht.
Brauche ich aber...



Du könntest eventuell die Eigenschaft "Windowless" des UserControls auf
True setzen - dann wird analog zum MouseMove das Ereignis
UserControl_HitTest gefeuert. Brauchst dann nur den Parameter HitResult
entsprechend auszuwerten.


Viele Grüße

Harald M. Genauck

"visual studio one" - http://www.visualstudio1.de (Chefredakteur)
"ABOUT Visual Basic" - http://www.aboutvb.de (Herausgeber)

Ähnliche fragen