Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

AlphaBlend

Estas en el tema de AlphaBlend en el foro de Visual Basic clásico en Foros del Web. hola mi pregunta es si puedo utilizar el api AlphaBlend pero si tener que usar dos picture, por ejemplo yo declaro dim imagen as stdpicture ...
  #1 (permalink)  
Antiguo 30/04/2006, 16:03
 
Fecha de Ingreso: abril-2005
Mensajes: 351
Antigüedad: 19 años
Puntos: 3
AlphaBlend

hola mi pregunta es si puedo utilizar el api AlphaBlend pero si tener que usar dos picture, por ejemplo yo declaro
dim imagen as stdpicture
set imagen = loadpicture(ruta)
y luego poder utilizar el AlphaBlend de esta imagen sobre el picture1, pero el problema es que imagen no tiene hdc

este es el codgio que tengo que utiliza dos pictures

Cita:
Option Explicit

'Este proyecto requiere de dos controles Picture

'Cada control debe tener una imagen, ambas deben ser distintas
Const AC_SRC_OVER = &H0
Private Type BLENDFUNCTION
BlendOp As Byte
BlendFlags As Byte
SourceConstantAlpha As Byte
AlphaFormat As Byte
End Type
Private Declare Function AlphaBlend Lib "msimg32.dll" (ByVal hdc As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal hdc As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal BLENDFUNCT As Long) As Long
Private Declare Sub RtlMoveMemory Lib "kernel32.dll" (Destination As Any, Source As Any, ByVal Length As Long)
Private Sub Form_Load()

Dim BF As BLENDFUNCTION, lBF As Long

'Cambiar el modo gráfico para que se mantenga la imagen
Picture1.AutoRedraw = True
Picture2.AutoRedraw = True
'usar pixels con la Api
Picture1.ScaleMode = vbPixels
Picture2.ScaleMode = vbPixels
'asignar los parámetros
With BF
.BlendOp = AC_SRC_OVER
.BlendFlags = 0
.SourceConstantAlpha = 128
.AlphaFormat = 0
End With

'copia la función blend a una variable en memoria de tipo long
RtlMoveMemory lBF, BF, 4

'aplicar la Api desde la picture1 sobre la picture2
AlphaBlend Picture2.hdc, 50, 0, 100, 100, Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, lBF
End Sub
__________________
www.leandroascierto.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:37.