blackcatthc
Messages postés86Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention 1 avril 2015
-
19 janv. 2007 à 00:01
blackcatthc
Messages postés86Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention 1 avril 2015
-
19 janv. 2007 à 21:57
Slt
j'utilse la fonction GdiTransparentBlt pour afficher des images venant d'une picturebox1 dans une picturebox2. Pour pouvoir profité de la couleur transparent de l'image.
le problème c'est que l'image que j'affiche dans la picturebox2 disparait dans le cas ou je fait passé une fenètre de windows par exemple ou encore si je déplace la fenètre de mon projet hors de l'écran. y a t'il un moyen de figer cette image pour évite ce genre de problème.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 19 janv. 2007 à 20:52
ouais, enfin, pour le coup de la fenere qui survolle la picturebox et qui provoque la perte partielle de l'image, c'est l'AutoRedraw de la PictureBox qui est en cause.......
zavier666
Messages postés266Date d'inscriptionmardi 7 septembre 2004StatutMembreDernière intervention30 avril 20091 19 janv. 2007 à 16:39
Il exsite un moyen d'utiliser les fichier type "png/gif"
Let's go:
I) Déclaration des fonctions
Cette première étape
consiste à déclarer l'ensemble des fonctions qui seront
utilisées.
Private Declare Function GdipCreateFromHDC Lib "gdiplus" (
_
ByVal hdc As Long, graphics As Long) As GpStatus
Private Declare
Function GdipDisposeImage Lib "gdiplus" ( _
ByVal image As Long) As
GpStatus
Private Declare Function GdipDrawImageRectRectI Lib "gdiplus" (
_
ByVal graphics As Long, ByVal image As Long, ByVal dstx As Long, _
ByVal
dsty As Long, ByVal dstwidth As Long, ByVal dstheight As Long,_
ByVal srcx As
Long, ByVal srcy As Long, ByVal srcwidth As Long, _
ByVal srcheight As Long,
ByVal srcUnit As GpUnit, _
ByVal imageAttributes As Long, Optional ByVal
callback As Long = 0, _
Optional ByVal callbackData As Long = 0) As
GpStatus
Private Declare Function GdipDeleteGraphics Lib "gdiplus" (
_
ByVal graphics As Long) As GpStatus
Private Declare Function
GdipLoadImageFromFile Lib "gdiplus" ( _
ByVal filename As String, ByRef image
As Long) As GpStatus
Private Declare Function GdiplusStartup Lib "gdiplus" (
_
ByRef token As Long, inputbuf As GdiplusStartupInput, Optional ByVal
outputbuf As Long = 0) As GpStatus
Private Declare Sub GdiplusShutdown Lib
"gdiplus" ( _
ByVal token As Long)
II) Déclaration des
types de données personnalisés
Cette deuxième étape consiste à
déclarer les types de données personnalisées utilisés par les fonctions
Private Type
GdiplusStartupInput
GdiplusVersion As Long
DebugEventCallback As
Long
SuppressBackgroundThread As Long
SuppressExternalCodecs As
Long
End Type
Private Sub Form_MouseDown(Button As Integer, Shift
As Integer, x As Single, y As Single)
Dim handle_graph As Long
Dim
handle_image As Long
Dim handle_imageAttr As Long
Dim param As
GdiplusStartupInput
Dim handle_session_gdiplus As Long
'
On allume GDIplus
' Si on n'active/désactive pas GDI+ comme il faut, quand il
faut, vous allez faire crasher votre VB.
param.GdiplusVersion =
1
GdiplusStartup handle_session_gdiplus, param
If
GdipCreateFromHDC(Me.hdc, handle_graph) = Gp_Ok Then
'
Chargement de l'image (PNG/JPG/TIF/GIF/BMP...)
fichier = App.Path +
"/param.png"
MsgBox fichier
If GdipLoadImageFromFile(StrConv(fichier,
vbUnicode), handle_image) = Gp_Ok Then
' On dessine
l'image.
GdipDrawImageRectRectI handle_graph, handle_image, x, y, 128,
128, 0, 0, 128, 128, UnitPixel, 0
End If
' On libère
l'image
GdipDisposeImage handle_image
End If
' On détruit notre objet Graphic
GdipDeleteGraphics
handle_graph