Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

PictureBox

6 réponses
Avatar
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.

6 réponses

Avatar
Patrice Henrio
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
Avatar
LE TROLL
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" a
é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
Avatar
Patrick JONIEC
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" a écrit dans le message 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.


Avatar
Patrice Henrio
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" a écrit dans le message 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
Avatar
Patrick JONIEC
"Patrice Henrio" a écrit dans le message de
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" a écrit dans le message 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
Avatar
Patrice Henrio
Patrick JONIEC a écrit :

"Patrice Henrio" a écrit dans le message de
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" a écrit dans le message
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