Denkfehler?

23/07/2012 - 12:21 von Hermie | Report spam
Hallo,

sieht jemand, warum das Bild (über die PictureBox-Eigenschaften geladen)
nicht übertragen wird?

Ich werde noch verrückt...


Me.picDst.AutoRedraw = True
Me.picSrc.AutoRedraw = True

Me.picDst.ScaleMode = vbPixels
Me.picSrc.ScaleMode = vbPixels

Dim LBF&
Dim BF As BLENDFUNCTION

' Struktur mit Blendingwerten füllen
With BF
.BlendOp = AC_SRC_OVER
.SourceConstantAlpha = 128
End With

' Struktur in eine Long-Variable kopieren
Call RtlMoveMemory(LBF, BF, Len(BF))

Dim lRet&
lRet = StretchBlt(Me.picDst.hdc, Me.picDst.ScaleWidth, 0,
Me.picDst.ScaleWidth, Me.picSrc.ScaleHeight, Me.picSrc.hdc, 0, 0,
Me.picSrc.ScaleWidth, Me.picSrc.ScaleHeight, LBF)

Me.picDst.Refresh

Danke, falls jemand meinen Fehler sieht.

Hermann
 

Lesen sie die antworten

#1 Heinz-Mario Frühbeis
23/07/2012 - 14:13 | Warnen spam
Hallo,

"Hermie"...
Hallo,

sieht jemand, warum das Bild (über die PictureBox-Eigenschaften geladen)
nicht übertragen wird?

Ich werde noch verrückt...


Me.picDst.AutoRedraw = True
Me.picSrc.AutoRedraw = True

Me.picDst.ScaleMode = vbPixels
Me.picSrc.ScaleMode = vbPixels

Dim LBF&
Dim BF As BLENDFUNCTION

' Struktur mit Blendingwerten füllen
With BF
.BlendOp = AC_SRC_OVER
.SourceConstantAlpha = 128
End With

' Struktur in eine Long-Variable kopieren
Call RtlMoveMemory(LBF, BF, Len(BF))



Hier das kenne ich unter:

Call RtlMoveMemory(LBF, BF, 4)

Dim lRet&
lRet = StretchBlt(Me.picDst.hdc, Me.picDst.ScaleWidth, 0,
Me.picDst.ScaleWidth, Me.picSrc.ScaleHeight, Me.picSrc.hdc, 0, 0,
Me.picSrc.ScaleWidth, Me.picSrc.ScaleHeight, LBF)



Und hier beginnst du das zeichnen in picDst mit der dst-Breite
(Me.picDst.ScaleWidth) und nicht mit 0 ...

Me.picDst.Refresh

Danke, falls jemand meinen Fehler sieht.



Hoffe und
mit Gruß
Heinz-Mario Frühbeis

Ähnliche fragen