PictureBox

Le
Patrice Henrio
Bonjour,

Tout le monde connait en VB6 la propriété autosize d'un pictureBox qui
permet à ce contrôle de prendre la taille de son contenant.
Mais comment faire l'inverse, adapter le contenant à la taille du
contrôle ? Une sorte de propriété Stretched.

Merci.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Patrice Henrio
Le #15357221
Patrice Henrio a écrit :
Bonjour,

Tout le monde connait en VB6 la propriété autosize d'un pictureBox qui
permet à ce contrôle de prendre la taille de son contenant.
Mais comment faire l'inverse, adapter le contenant à la taille du
contrôle ? Une sorte de propriété Stretched.

Merci.


J'ai trouvé. Il suffit d'utiliser l'API StretchBlt

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
LE TROLL
Le #15357211
Et puis t'as aussi trouvé le meilleur moyen
d'avoir une réponse :o)


--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Patrice Henrio" écrit dans le message de news:
O4G%
| Patrice Henrio a écrit :
| > Bonjour,
| >
| > Tout le monde connait en VB6 la propriété
autosize d'un pictureBox qui
| > permet à ce contrôle de prendre la taille de
son contenant.
| > Mais comment faire l'inverse, adapter le
contenant à la taille du
| > contrôle ? Une sorte de propriété Stretched.
| >
| > Merci.
| J'ai trouvé. Il suffit d'utiliser l'API
StretchBlt
|
| 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
Patrick JONIEC
Le #15357201
J'utilise la mise à l'échelle suivante :

ImaArticlePhoto.Stretch = False
ImaArticlePhoto.Picture = LoadPicture(TxtArticleNomPhoto.Text)
If ImaArticlePhoto.Height / 3135 > ImaArticlePhoto.Width / 3975 Then
ImaArticlePhoto.Width = ImaArticlePhoto.Width /
(ImaArticlePhoto.Height / 3135)
ImaArticlePhoto.Height = 3135
Else
ImaArticlePhoto.Height = ImaArticlePhoto.Height /
(ImaArticlePhoto.Width / 3975)
ImaArticlePhoto.Width = 3975
End If

Mon image destination : Height = 3135 - width = 3975


"Patrice Henrio" news:uEY$
Bonjour,

Tout le monde connait en VB6 la propriété autosize d'un pictureBox qui
permet à ce contrôle de prendre la taille de son contenant.
Mais comment faire l'inverse, adapter le contenant à la taille du contrôle
? Une sorte de propriété Stretched.

Merci.


Patrice Henrio
Le #15357191
Patrick JONIEC a écrit :
J'utilise la mise à l'échelle suivante :

ImaArticlePhoto.Stretch = False
ImaArticlePhoto.Picture = LoadPicture(TxtArticleNomPhoto.Text)
If ImaArticlePhoto.Height / 3135 > ImaArticlePhoto.Width / 3975 Then
ImaArticlePhoto.Width = ImaArticlePhoto.Width /
(ImaArticlePhoto.Height / 3135)
ImaArticlePhoto.Height = 3135
Else
ImaArticlePhoto.Height = ImaArticlePhoto.Height /
(ImaArticlePhoto.Width / 3975)
ImaArticlePhoto.Width = 3975
End If

Mon image destination : Height = 3135 - width = 3975


"Patrice Henrio" news:uEY$
Bonjour,

Tout le monde connait en VB6 la propriété autosize d'un pictureBox qui
permet à ce contrôle de prendre la taille de son contenant.
Mais comment faire l'inverse, adapter le contenant à la taille du
contrôle ? Une sorte de propriété Stretched.

Merci.





Les pictureBox n'admettent pas la propriété Strech
Par ailleurs l'API STrechtBlt nécessite que l'image que l'on veut
déformer soit visible à l'écran.

Je viens de réaliser cette opération de streching pour uen pictureBox et
j'ai déposé le source à cette adresse :

http://www.vbfrance.com/codes/STRECH-SUR-PICTUREBOX_46858.aspx
Patrick JONIEC
Le #15357181
"Patrice Henrio" news:%
Patrick JONIEC a écrit :
J'utilise la mise à l'échelle suivante :

ImaArticlePhoto.Stretch = False
ImaArticlePhoto.Picture = LoadPicture(TxtArticleNomPhoto.Text)
If ImaArticlePhoto.Height / 3135 > ImaArticlePhoto.Width / 3975 Then
ImaArticlePhoto.Width = ImaArticlePhoto.Width /
(ImaArticlePhoto.Height / 3135)
ImaArticlePhoto.Height = 3135
Else
ImaArticlePhoto.Height = ImaArticlePhoto.Height /
(ImaArticlePhoto.Width / 3975)
ImaArticlePhoto.Width = 3975
End If

Mon image destination : Height = 3135 - width = 3975


"Patrice Henrio" news:uEY$
Bonjour,

Tout le monde connait en VB6 la propriété autosize d'un pictureBox qui
permet à ce contrôle de prendre la taille de son contenant.
Mais comment faire l'inverse, adapter le contenant à la taille du
contrôle ? Une sorte de propriété Stretched.

Merci.





Les pictureBox n'admettent pas la propriété Strech
Par ailleurs l'API STrechtBlt nécessite que l'image que l'on veut déformer
soit visible à l'écran.

Je viens de réaliser cette opération de streching pour uen pictureBox et
j'ai déposé le source à cette adresse :

http://www.vbfrance.com/codes/STRECH-SUR-PICTUREBOX_46858.aspx



C'est vrai.
En fait, c'est une Image que j'utilise avec la propriété stretch ...
Petite erreur de ma part

Patrick
Patrice Henrio
Le #15357171
Patrick JONIEC a écrit :

"Patrice Henrio" news:%
Patrick JONIEC a écrit :
J'utilise la mise à l'échelle suivante :

ImaArticlePhoto.Stretch = False
ImaArticlePhoto.Picture = LoadPicture(TxtArticleNomPhoto.Text)
If ImaArticlePhoto.Height / 3135 > ImaArticlePhoto.Width / 3975 Then
ImaArticlePhoto.Width = ImaArticlePhoto.Width /
(ImaArticlePhoto.Height / 3135)
ImaArticlePhoto.Height = 3135
Else
ImaArticlePhoto.Height = ImaArticlePhoto.Height /
(ImaArticlePhoto.Width / 3975)
ImaArticlePhoto.Width = 3975
End If

Mon image destination : Height = 3135 - width = 3975


"Patrice Henrio" de news:uEY$
Bonjour,

Tout le monde connait en VB6 la propriété autosize d'un pictureBox
qui permet à ce contrôle de prendre la taille de son contenant.
Mais comment faire l'inverse, adapter le contenant à la taille du
contrôle ? Une sorte de propriété Stretched.

Merci.





Les pictureBox n'admettent pas la propriété Strech
Par ailleurs l'API STrechtBlt nécessite que l'image que l'on veut
déformer soit visible à l'écran.

Je viens de réaliser cette opération de streching pour uen pictureBox
et j'ai déposé le source à cette adresse :

http://www.vbfrance.com/codes/STRECH-SUR-PICTUREBOX_46858.aspx



C'est vrai.
En fait, c'est une Image que j'utilise avec la propriété stretch ...
Petite erreur de ma part

Patrick


En fait j'ai trouvé la méthode qui remplace

Soit une Picture1 et une picture2
Pour remplir la Picture2 avec l'image de la picture1, il suffit d'écrire
Picture2.paintPicture Picture1.picture,0,0,Picture2.width,Picture2.height

De plus contrairement à ce que j'ai dit, StretchBlt fonctionne même avec
une image cachée ou hors écran. En fait il ne faut pas oublier de mettre
la propriété Autodraw de l'image à true pour que l'opération souhaitée
soit visible.
Comme la méthode paintPicture fait exactement ce que je voulais faire
pas programmation, j'ai fait retirer le source
http://www.vbfrance.com/codes/STRECH-SUR-PICTUREBOX_46858.aspx
Publicité
Poster une réponse
Anonyme