Api "ExtFloodFill" et utiliser "Strech"dans une "PictureBox"

bilaloch Messages postés 556 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 31 octobre 2019 - 3 nov. 2005 à 07:55
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Derniè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" ?

Merci et @ Plus

BIL@Loch

12 réponses

bilaloch Messages postés 556 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 31 octobre 2019 1
3 nov. 2005 à 11:50
Bonjour,

Merci et @ Plus

BIL@Loch
0
bilaloch Messages postés 556 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 31 octobre 2019 1
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 ?

Merci d'avance

BILALoch
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
3 nov. 2005 à 12:05
salut,
pour l'intérêt du forum, çà pourraît être sympa de copier le bout de code correspondant à la réponse que tu cherchais ;)

et pour l'effacement... normalement, mettre la propriété AutoRedraw = True à ta PictureBox, çà devrait suffir.
@+
PCPT [AFCK]
0
bilaloch Messages postés 556 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 31 octobre 2019 1
3 nov. 2005 à 16:32
Oki pcpt ^^... Desolé mais en fait c'etait juste mon erreur. Merci pour ta reponse :) Je teste ca tout de suite...

BILALoch
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bilaloch Messages postés 556 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 31 octobre 2019 1
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.

Merci

BILALoch
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>


voilà @+ ;)
PCPT [AFCK]
0
bilaloch Messages postés 556 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 31 octobre 2019 1
3 nov. 2005 à 19:39
Oki merci pcpt. Ton aide me sera bien utile ;)

BILALoch
0
bilaloch Messages postés 556 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 31 octobre 2019 1
3 nov. 2005 à 20:37
Je reexplique ma question : comment rendre un picturebox strech, c'est a dire qui redimensionnera l'image a sa taille ?

Merci

BILALoch
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>


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...)

+
PCPT [AFCK]
0
bilaloch Messages postés 556 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 31 octobre 2019 1
3 nov. 2005 à 22:11
Merci pour ton aide. Je suis desolé de m'être fait mal comprendre. J'avais cru que, c'était assez evident. Merci encore^^ je vais tester demain.

BILALoch
0
bilaloch Messages postés 556 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 31 octobre 2019 1
3 nov. 2005 à 22:12
PS : tu as oublié "Public Const SRCCOPY = &HCC0020" ;)

BILALoch
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
3 nov. 2005 à 22:32
SRCCOPY = constance à déclarer
vbSrcCopy = constante VB
s'il y a encore le "option explicit", c'est que je n'ai rien oublié !
0
Rejoignez-nous