Souris et picture box

Kami1357 Messages postés 36 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 11 février 2005 - 9 févr. 2005 à 16:42
Kami1357 Messages postés 36 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 11 février 2005 - 9 févr. 2005 à 20:06
J'ai un gros soucis !!!



Lorsque le pointeur de ma souris passe par dessus un picture box,
son X et son Y se figent ! Le problème est que les coordonnées de
la souris sont usper importantes dans mon prog !



Vous savez comment remédier à cela ???

MERCI !

17 réponses

Kami1357 Messages postés 36 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 11 février 2005
9 févr. 2005 à 16:47
Oui aussi j'ai oublié de demander ...

A la position de ma souris est affecté un picturebox qui suit son
mouvement sur X , le problème vient du rafrachissement, parceque
l'image scintille quand je bouge ...



Une solution ? Un remède ?



Merci !
0
BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008
9 févr. 2005 à 17:21
Je n'ai pas très bien compris ton problème... utilise la propriété X et
Y de mousemove ou bien l'api getcursorpos pour obtenir la position du
curseur

Bonne prog'
0
Kami1357 Messages postés 36 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 11 février 2005
9 févr. 2005 à 17:43
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

gun.Left = X

End Sub





Voilà le code tres simple qui me permet de bouger le Gun de gauche à
droite, mais lorsque je passe la souris sur une picturebox , sur toute
la surface de la picturebox les coords ne changent pas !





Faites le test, mettez 2 pictures box sur votre Form

1 qi s'apelle Gun

l'autre quelconque.

puis 2 label.

label1 et label2



et mettez ce code :

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

label1.caption = X

Label2.caption = Y


gun.Left = X


End Sub



Vous verrez bien !

MERCI !
0
Kami1357 Messages postés 36 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 11 février 2005
9 févr. 2005 à 17:51
Qu'est-ce que l'api api getcursorpos ? comment s'en sert-on ?

MErci
0

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

Posez votre question
MoiOlivier Messages postés 172 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 4 août 2005
9 févr. 2005 à 18:08
Salut,
C'est logique, quand tu passes ta souris sur un picturebox, elle ne passe pas sur la form, donc il n'y a pas dévenement MouseMove sur la form mais sur le picturebox concerné.

Une des solutions serait de mettre la propriété Enabled des picturebox à false, comme ça ils ne reçoivent plus ni les évenements clavier ni les évenements souris.

Voilà, bonne prog et @+
0
Kami1357 Messages postés 36 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 11 février 2005
9 févr. 2005 à 18:11
Merci olivier !!!

Impeccable !



Au fait en ce qui concerne le scintillement ? Vous avez une solution ?

MERIC BIEN !
0
MoiOlivier Messages postés 172 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 4 août 2005
9 févr. 2005 à 18:24
Re.
Si j'ai bien compris, c'est l'image du picturebox qui bouge qui scintille...
Je viens de faire un petit test, ça ne le fait pas chez moi. A part si ton picturebox est énorme, je ne vois pas pourquoi il le ferait.
Soyons constructifs : essaie avec un contrôle Image plutôt qu'un PictureBox, les contrôles Image sont moins lourds, ils demandent moins de ressources.
Sinon, il faudrait qu'on en sache plus pour mieux t'aider.
0
Kami1357 Messages postés 36 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 11 février 2005
9 févr. 2005 à 18:26
bin en fait ca vient peut-être du format de mon image, c'est un GIF avec couche alpha, donc transparent à certains endroits....

cela vient de là ?
0
MoiOlivier Messages postés 172 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 4 août 2005
9 févr. 2005 à 18:39
Re-re.
Yep, ça vient de là. Le calcul de la transparence prend plus de temps qu'un simple affichage...
(Juste une petite question, comment fais-tu pour obtenir de la transparence (même avec un gif) avec un PictureBox ? )

Sinon, je suis désolé, je ne vois pas trop comment faire pour éviter ce scintillement (à part peut-être avec l'api TransparentBlt... Fait une petite recherche sur le site, tu auras sûrement pleins d'exemples).

@+
0
Kami1357 Messages postés 36 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 11 février 2005
9 févr. 2005 à 18:42
J'ai utilisé photoshop tout simplement, j'ai enregistré des Gif avec couche alpha et hop !

lol



Voilà merci!



Au fait c'est quoi un API ? je vais chercher mais je voudrais une
réponse pour saovir ce que c'est en gros et comment ça marche !



MERCI ;) ;)
0
MoiOlivier Messages postés 172 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 4 août 2005
9 févr. 2005 à 18:51
Re-re-re,
Une API, c'est (en gros) une fonction "externe" à VB, mais que tu peux utiliser quand même dans VB. Elles sont dans des dll et codée dans un autre langage (C++ d'hab) donc beaucoup plus rapide que ce que VB peut faire (en graphisme en tout cas).
Pour en utiliser une, il faut la déclarer dans un module, puis tu l'utilises comme une fonction standard.
Je te conseille Allapi.net (où tu peux télécharger gratuitement la visionneuse d'api API-Guide) ou/et ProgOtoP API Viewer, là, tu trouveras à peu près tout ce qu'il est nécessaire de savoir sur le sujet.
@+
0
Kami1357 Messages postés 36 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 11 février 2005
9 févr. 2005 à 19:23
merci dommage que lexempel de ProgOtoP ne marche pas.... je DL l'api viewer, on vera ce que ça donne ... merci ;)
0
MoiOlivier Messages postés 172 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 4 août 2005
9 févr. 2005 à 19:31
Re-re-re-re,
En fait, TransparentBlt copie une image dans une autre en utilisant une couleur de référence pour la transparence (dans l'exemple Progotop, c'est le blanc). Donc, le plusd simple c'est de ne pas faire un gif avec transparence, mais plutôt un bitmap avec (par ex) du rose comme couleur là où tu veux que ce soit transparent, tu charges cette image dans un picturebox, puis tu utilise transparentblt avec comme argument de transparence le rose pour afficher ton image dans l'autre picturebox.

@+
0
Kami1357 Messages postés 36 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 11 février 2005
9 févr. 2005 à 19:43
enore un problème.. en utilisant l'API ça semble marcher.. le problème
c'est que j'ai maintenant mon image qui se balade, avec un fon
transparent qui cligote pas .... oui mais avec derriere le cadre de
l'image !



Comment rendre le support de l'image transparent et sans cet effet 3D ????

:( :( :(
0
Kami1357 Messages postés 36 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 11 février 2005
9 févr. 2005 à 19:45
Et si j'utilisait un picturebox au lieu d'un support image... ?? lol
0
Kami1357 Messages postés 36 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 11 février 2005
9 févr. 2005 à 19:49
Oui mais non, (! ) je peux plus utiliser les commande Hdc et tout le reste.

Donc je suis bloqué !

arf c'est pas possible !

Faut absolument que je rendre ce picturebox transparant. Sans le cadre gris au fond et cet effet 3D ......
0
Kami1357 Messages postés 36 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 11 février 2005
9 févr. 2005 à 20:06
J'ai enlevé l'effet 3D, et maintenant je me retrouve avec une carré
blanc, et comme le TransparentBlt est censé supprimer le blanc de
l'image source, bin je me retrouve avec une image transparente sur un
carré blanc, donc en gros c'est exactement pareil lol !

J'en peux plus ! Comment faire ?????
0
Rejoignez-nous