Api "ExtFloodFill" et utiliser "Strech"dans une "PictureBox"
bilaloch
Messages postés556Date d'inscriptionlundi 6 octobre 2003StatutMembreDernière intervention31 octobre 2019
-
3 nov. 2005 à 07:55
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
3 nov. 2005 à 22:32
Bonjour,
Serait il possible de remplir une zone d'un controle "Image" qui se trouve dans un controle "PictureBox", pas d'une zone d'un controle "PictureBox" directement ? Et comment serait il possible de redimensionner l'image selon la taille de la "PictureBox" ?
bilaloch
Messages postés556Date d'inscriptionlundi 6 octobre 2003StatutMembreDernière intervention31 octobre 20191 3 nov. 2005 à 11:55
Desolé pour le dernier message... j'ai quelques problemes avec mon navigateur. Bref... j'ai trouvé la solution au probleme, mais je souhaite exposer un autre probleme : lorsque j'utilise l'api "ExtFloodFill", et que je change de fenetre ou que je fais passer quelque chose au dessus de la zone peinte, la couleur avec quoi j'avais peint s'enleve. Ma question est la suivante : comment faire pour garder cette zone peinte ?
bilaloch
Messages postés556Date d'inscriptionlundi 6 octobre 2003StatutMembreDernière intervention31 octobre 20191 3 nov. 2005 à 16:38
Hum... desolé mais j'avais oublié de mentionner qu'un controle image est dasn la picturebox. Cela ne fonctionne que dans une pictubox directement, car quand elle est vide, ta technique fonctionne. Mais quand l'image est chargé dans le controle image, cela ne fonctionne pas.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 3 nov. 2005 à 17:40
salut,
ici, Image1 contient une photo.jpg.
elle est placée au centre de Picture1
au click, Picture2 reçoit Picture1 (donc dont Image1)
à toi de voir ensuite selon tes besoins. j'avoue que ta question n'est pas assez claire...
si ensuite tu as besoin de récupérer l'image de Picture2 en strech, il te suffit de faire :
Image2.Picture = Picture2.Image
Option Explicit
Private Declare Function BitBlt Lib "gdi32" _
(ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, _
ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, _
ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
'
'
Private Sub Form_Load()
Picture2.Width = Picture1.Width
Picture2.Height = Picture1.Height
End Sub
'
'
Private Sub Command1_Click()
Call BitBlt(Picture2.hDC, 0, 0, Picture1.Width / Screen.TwipsPerPixelX, _
Picture1.Height / Screen.TwipsPerPixelY, Picture1.hDC, 0, 0, vbSrcCopy)
End Sub
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 3 nov. 2005 à 20:53
re,
1bouton, 2pictures
Option Explicit
Private Declare Function StretchBlt Lib "gdi32" _
(ByVal hdc As Long, ByVal x As Long, ByVal y As Long, _
ByVal nWidth As Long, ByVal nHeight As Long, _
ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, _
ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, _
ByVal dwRop As Long) As Long
'
'
Private Sub Form_Load()
Picture1.BorderStyle = 0
Picture2.BorderStyle = 0
Picture1.BackColor = 255
Me.BackColor = 0
End Sub
'
'
' on étire l'image de la Picture2 dans la Picture1
Private Sub Command1_Click()
Call StretchBlt(Picture1.hdc, 0, 0, Picture1.Width / Screen.TwipsPerPixelX, _
Picture1.Height / Screen.TwipsPerPixelY, Picture2.hdc, 0, 0, Picture2.Width / Screen.TwipsPerPixelX, _
Picture2.Height / Screen.TwipsPerPixelY, vbSrcCopy)
End Sub
on a besoin du hDC. un objet Image n'en a pas. si tu dois utiliser une image, transfère Image1.Picture vers Picture2.Picture.
ps : on aurait gagné bcp de temps tous les 2 si t'étais relu....
même ton dernier post, sans être dedans... c'est pas évident (ces mots sont des termes trompeurs...)