DraaFil
Messages postés264Date d'inscriptionmercredi 16 avril 2003StatutMembreDernière intervention23 mars 2012
-
5 janv. 2007 à 20:08
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 2014
-
5 janv. 2007 à 22:30
Bonjour a tous,
J'ai une image dans une form, je voudrais deplacer cette derniere a l'endroit ou j'ai cliquez avec la souris, mais je veux pas quel apparaise a cettte endroit, je veux la voir ce deplacer automatiquement a ce point.
Tiens, un exemple, avec un timer (TimerMove), une picturebox (TaPictureBox) et une autre (PicMove) dans la premiere.
Tu attribut une image via la propriété Picture de TaPictureBox et tu colle ce code :
Const MoveSpeed As Integer = 20
Dim Img As StdPicture
Dim MoveX As Single, MoveY As Single
Private Sub Form_Load()
TimerMove.Enabled = False
TimerMove.Interval = 1
PicMove.BorderStyle = 0
Set Img = TaPictureBox.Picture
Set TaPictureBox.Picture = Nothing
Set PicMove.Picture = Img
TaPictureBox.AutoRedraw = True
PicMove.Width = Img.Width
PicMove.Height = Img.Height
End Sub
Private Sub TaPictureBox_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
' PicMove.Move MoveX, MoveY
MoveX = X
MoveY = Y
TaPictureBox.Cls
PicMove.Visible = True
TimerMove.Enabled = True
End Sub
Private Sub TimerMove_Timer()
Dim L As Integer: L = CInt(Sqr((MoveX - PicMove.Left) ^ 2 + (MoveY - PicMove.Top) ^ 2))
If L <= 20 Then
TaPictureBox.PaintPicture Img, MoveX, MoveY
PicMove.Visible = False
TimerMove.Enabled = False
Else
PicMove.Move PicMove.Left + (MoveSpeed / L) * (MoveX - PicMove.Left), _
PicMove.Top(MoveSpeed / L) * (MoveY - PicMove.Top)
End If
End Sub,
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 5 janv. 2007 à 22:09
Essaye d'être précis !
Une picturebox "transparente" (comme tu dis) serait une picturebox dont in ne verrait plus l'image et qui laisserait voir, à la place, tout ce qui est "derrière" elle.
Comme je ne pense pas du tout que c'est là le but recherché, j'attends que tu saches te montrer très précis, pour te répondre, ma foi, ce que je devine déjà que je te répondrai, bien évidemment !
Alors : donant donnant : ta précision contre ma réponse !
DraaFil
Messages postés264Date d'inscriptionmercredi 16 avril 2003StatutMembreDernière intervention23 mars 2012 5 janv. 2007 à 22:12
Je vais etre plus clair pour toi! j'ai une image (gif) donc il y a transparence sur cette image, ma picturebox me fait apparaitre cette transparence blanc
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 5 janv. 2007 à 22:30
Une image .gif dotée d'une transparence pour une zone peut être utilisée directement dans un contrôle image et ce contrôle image peut alors être déplacé, avec sa transparence de zone, au dessus de n'importe quelle pictureBox . On ne verra alors se déplacer que sa partie non transparente. Il en va de même en ce qui concerne une icône dotée d'une zone transparente.
Il esiste également la possibilité de créer une transparence d'une couleur (à définir) d'une picturebox, et il faut alors, si l'on veut superposer l'image de cette picturebox à celle d'une autre picturebox tout en "ignorant" la couleur définie comme transparente, utiliser une fonction de l'Api de Windows...
Ce sont là 2 traitements complètement différents et le deuxième nécessite une maîtrise minimum déjà acquise.
Question donc : où en es-tu de tes connaissances en traitement d'images et en utilisation de l'Api de Windows ?
Si tu en es encore au début; il sera plus sage de faire avec ce que tu sais déjà manipuler sans hésitation .
En résumé : que cherches-tu à faire ? Un simple effet de mouvement d'une image avec zone "transparente" par dessus une picturebox (pour un jeu, une animation, etc...) ?