Mouvement picturebox pas fluide

cs_Finality Messages postés 76 Date d'inscription samedi 28 janvier 2006 Statut Membre Dernière intervention 22 janvier 2009 - 1 déc. 2007 à 15:44
cs_Finality Messages postés 76 Date d'inscription samedi 28 janvier 2006 Statut Membre Dernière intervention 22 janvier 2009 - 1 déc. 2007 à 19:43
Bonjour tout le monde,

dans le programme que je suis en train de dévelloppé j'aurais besoin de faire bouger une picture box a l'aide d'une souris. Pour cela, j'utilise ce code :

;   Private Sub frmJeu_MouseMove(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove

        picRaquette.Left = e.X

    End Sub

Je précise que l'image de ma PictureBox est un png avec certains morceaux transparents.

Mais que je déplace ma souris sur ma page, le mouvement est non fluide : la picturebox sarrete puis réapparait là où est possitioner le curseur

Quelqu'un pourrait-il me dire d'où provient cela?

Merci pour votre reponse
Cordialement
Kevin PERRIAT

7 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
1 déc. 2007 à 16:21
Salut,

Essaye sans rien promètre, quand tu fais ton déplacement de mettre ta picturebox.Enabled = False, car ton problème vient du fait que ta picture doit "recalculer" l'image tout au long de son déplacement...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
cs_Finality Messages postés 76 Date d'inscription samedi 28 janvier 2006 Statut Membre Dernière intervention 22 janvier 2009
1 déc. 2007 à 16:37
Salut,

j'ai bien fait ce que tu m'as dit mais ça ne change rien au probleme
J'ai aussi essayé de mettre mon image en arriere plan de ma pictureBox mais ça ne change rien du tout

As-tu une autre idée?

Merci pour ton aide
Cordialement
Kevin PERRIAT
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
1 déc. 2007 à 16:43
Re,
Une autre idée..Ben, peut-être mettre les propriétés AutoRedraw False et Autosize False pendant ton déplacement...Si cela ne fonctionne pas, ne charge pas l'image pendant ton déplacement, puis une fois ton déplacement fini, recharge l'image...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
cs_Finality Messages postés 76 Date d'inscription samedi 28 janvier 2006 Statut Membre Dernière intervention 22 janvier 2009
1 déc. 2007 à 17:04
Re,

aucun effet non plus Ca m'énerve un peu ces petis beugs de VB....

As-tu (encore) une autre idée?

EN tout cas merci pour ton aide

Cordialement
Kevin PERRIAT

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

Posez votre question
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
1 déc. 2007 à 19:07
salut, ton png prend combien en mémoire?
j'ai eu un problème une fois de fluidité parce que l'image que j'utilisais était un peu plus grosse que d'autres, j'ai dû la refaire avec photoshop pour que ça marche mieux.
Utilisateur anonyme
1 déc. 2007 à 19:26
Salut,

Il est sur qu'avec de la transparence ca va pas se tracer vite.
Je viens de faire des testes, avec la méthode du WndProc, c'est déjà beaucoup mieux. Y'a plus que les parties transparentes qui ont toujours un peu de mal à suivre.

Rappel de la méthode WndProc :
Public Class Brique
  Inherits System.Windows.Forms.PictureBox

  Private Const WM_NCHITTEST As Integer = &H84
  Private Const HTCLIENT As Integer = &H1
  Private Const HTCAPTION As Integer = &H2

  Protected Overrides Sub WndProc(ByRef m As Message)
    MyBase.WndProc(m)
    If m.Msg = WM_NCHITTEST Then
      If m.Result = CType(HTCLIENT, IntPtr) Then
        m.Result = CType(HTCAPTION, IntPtr)
      End If
    End If
  End Sub
End Class, ----
(Coloration syntaxique automatique par Kenji)

__________
  Kenji
cs_Finality Messages postés 76 Date d'inscription samedi 28 janvier 2006 Statut Membre Dernière intervention 22 janvier 2009
1 déc. 2007 à 19:43
Merci à vous 2 pour votre aide

Mon png fait 3.8 Ko ce qui je trouve très léger... Mais même si je ne mets qu'une couleur de fond (backColor), ma pictureBox rame... c'est normal?

Charles Racaud je vais tester ta méthode et je te tiendrais au courant. Mais il n'y aurait rien de plus simple?

Encore une fois merci à vous deux
Cordialement
Kevin PERRIAT
Rejoignez-nous