VisualBasic v6.0: Location souris

Radiohead4ever Messages postés 71 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 21 novembre 2006 - 8 févr. 2004 à 00:52
cs_Geff Messages postés 192 Date d'inscription vendredi 2 mars 2001 Statut Membre Dernière intervention 10 janvier 2006 - 21 nov. 2005 à 11:31
Bonjour à tous. je suis programmeur amateur qui s'amuse avec visual basic. j'ai une petite question qui vous semblera peut-être simplette mais bon... je voudrais savoir comment faire pour qu'un item de mon interface (label) se place automatiquement a l'endroit ou la souris de l'utilisateur se trouve sur l'écran. Aisni je pourrai place ce code dans une timer et mon label suivra la souris

PS: je ne désire pas savoir comment changer l'image de mon curseur.

Merci d'avance.

4 réponses

cs_Geff Messages postés 192 Date d'inscription vendredi 2 mars 2001 Statut Membre Dernière intervention 10 janvier 2006
8 févr. 2004 à 20:14
Il existe une solution radicale qui serais de passer par une API (Application Programming Interface) qui te donne la position de la souris sur l'ensemble de l'écran, voici comment procéder ::

tu déclare ca dans la partie <Declaration> de ta feuille ::

Private Type POINTAPI
x As Long
y As Long
End Type

Dim Souris As POINTAPI

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

puis dans un Timer tu met cela ::

GetCursorPos Souris
Label1.left = Souris.X + 10
Label1.top = Souris.y + 10

Et voila ton label suis ta souris, il se trouve juste en dessous, cependant il ne dépassera pas les limites de ta feuille bien evidement! :D

Geff >:)
0
Radiohead4ever Messages postés 71 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 21 novembre 2006
9 févr. 2004 à 23:25
merci beaucoup sa marche !!! :)
0
fredflo74 Messages postés 14 Date d'inscription lundi 29 août 2005 Statut Membre Dernière intervention 28 novembre 2015
21 nov. 2005 à 11:19
Salut,

Oui je sais lol le message de Geff ne date pas d'hier, mais bon je suis tombé sur son code que j'ai trouvé bien interessant!!

Ceci dit, je l'ai testé biensur, mais chez moi , il y a deux petit soucis :
* au lancement du programme le label ne se trouve pas à coté de la souris
* la souris se déplace beaucoup plus vite que le label

A quoi est-du?

Merci d'avance
0
cs_Geff Messages postés 192 Date d'inscription vendredi 2 mars 2001 Statut Membre Dernière intervention 10 janvier 2006
21 nov. 2005 à 11:31
Salut fred,

En effet le message ne date pas d'hier ;)

Mais il vaut mieu poser la question ici , plutot que de créer un nouvaus sujet! donc bonne initiative de ta part :)

Pour ce qui est du fait que le label ne se trouve pas au niveau de la position de la souris au déammarage, essaye de mettre ce code :

GetCursorPos Souris
Label1.left = Souris.X + 10
Label1.top = Souris.y + 10

dans la procédure

Sub Form_Load()

donc en gros tu auras ca :

Sub Form_Load()

GetCursorPos Souris
Label1.left = Souris.X + 10
Label1.top = Souris.y + 10

End Sub

Ca devrait régler le problème de la position de départ, pour ce qui est de la lenteur, essaye de mettre la propriété Interval de ton timer à 1, si ca ne marche toujours pas, c'est que ton PC ne suit pas ;)

En tout cas merci pour ce petit rappel nostalgique ;)

# Geff

main(k){float i,j,r,x,y=-16;while(puts(""),y++=0;x++)|&IH%*#"[k&15]))for(i=k=r=0;j=r*r-i*i-2+x/25,i=2*r*i+y/10,j*j+i*i# GEFF
0
Rejoignez-nous