Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Positionner le Curseur de la souris [ Windows / API ] (tulesais)

mercredi 8 octobre 2008 à 08:51:27 | Positionner le Curseur de la souris

tulesais

Bonjour tout le monde !!!


après plusieurs heures de recherches, je viens vous soumettre mon problème qui ne semble pas, sauf erreur de ma part,
avoir déjà été évoqué.


Suite à un click sur un bouton, je souhaiterais positionner le curseur de la souris sur un objet (image) de mon formulaire.
j'ai essayé d'utiliser 'SetCursorPos' mais cette fonction prend en compte l'écran et non le formulaire !
Et donc, en changeant de résolution d'écran, la position du curseur évolue.

Ma question est donc toute simple, comment récupérer la position de l'objet (image) à partir de l'écran et non du formulaire ???


Merci d'avance pour vos réponses,

mercredi 8 octobre 2008 à 09:08:56 | Re : Positionner le Curseur de la souris

jmfmarques

Membre Club
Bonjour,
Pour le left, par exemple ;
le left de ta Form  + le Left de ton objet (en prenant bien évodemment en compte, car important, l'échelle (scalemode) choisie pour ta Form)

mercredi 8 octobre 2008 à 09:43:32 | Re : Positionner le Curseur de la souris

jrivet

Membre Club
Salut,

regarde ce lien peu être sera t il utile.

@+: Ju£i¤n
Pensez: Réponse acceptée

mercredi 8 octobre 2008 à 10:29:36 | Re : Positionner le Curseur de la souris
mercredi 8 octobre 2008 à 11:28:46 | Re : Positionner le Curseur de la souris

tulesais

je suis perdu !!!


jmfmarques :

A priori ta solution semble royale (merci beaucoup) sauf que je n'arrive pas à la mettre en place à cause du scale (je ne sais pas m'en servir) ! La commande ci-dessous ne se positionne pas la où il faut ! Pour info mon scalemode = 3 (pixel)
SetCursorPos Me.Left + Img.Left, Me.Top + Img.Top


gillardg :

super ton api !!! très facile à mettre en place pour le formulaire mais pour un objet du formulaire ... je n'y suis pas arrivé :-(
   tmpR.Top = Me.Top / Screen.TwipsPerPixelY 
   tmpR.Left = Me.Left / Screen.TwipsPerPixelX 
   tmpR.Right = (Me.Left + Me.Width) / Screen.TwipsPerPixelX 
   tmpR.Bottom = (Me.Top + Me.Height) / Screen.TwipsPerPixelY


Pourriez vous m'en dire un peu plus .. s'il vous plait ???

MERCIIIIIIII d'avance !!!!


mercredi 8 octobre 2008 à 21:35:56 | Re : Positionner le Curseur de la souris

PCPT

Administrateur CodeS-SourceS
salut,

avec une picturebox (au lieu d'une image), tu peux utiliser l'API ClientToScreen
à voir....
++

Prenez un instant pour répondre à ce sondage svp

jeudi 9 octobre 2008 à 00:18:12 | Re : Positionner le Curseur de la souris

jmfmarques

Membre Club
Réponse acceptée !

Re...
Alors tulesais ?
Et si tu allais faire un tour dans ton aide en ligne pour voir à quoi servent Scalex et scaley et comment on s'en sert ?
(je t'ai laissé le temps de fouiller toi-même un peu...)

Alors :
1) SetCursorPos travaille en pixels
2) le left et le top de ta Form sont indépendants de son scalemode et sont toujours exprimés en twips, à convertir donc en pixels.
3) La position de ton image suit l'échelle (scalemode) choisie pour ta form et il va falloir transposer du scalemode de ta Form en échelle de pixels

donc : (un contrôle image nommé Image1 et un bouton command1 pour lancer le positionnement)

Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long

Private Sub Command1_Click()
  Dim posx As Long, posy As Long
  posx = Me.Left / Screen.TwipsPerPixelX + Me.ScaleX(Image1.Left + Image1.Width / 2, Me.ScaleMode, vbPixels)
  posy = Me.Top / Screen.TwipsPerPixelX + Me.ScaleY(Image1.Top + Image1.Height / 2, Me.ScaleMode, vbPixels)
  SetCursorPos posx, posy
End Sub

Ce n'est tout de même pas bien sorcier !
Il suffit dans plus de 90% des cas de lire attentivement ton aide en ligne ...


jeudi 9 octobre 2008 à 08:01:32 | Re : Positionner le Curseur de la souris

tulesais

WOUAHHH !!!


merci beaucoup jmfmarques !!!

ok ok ... la prochaine fois je me pencherai un peu plus sur l'aide en ligne ... promis !!!

En tout cas, un gros à tout le monde et un énorme à toi !!!

TuLeSais




Cette discussion est classé dans : formulaire, écran, curseur, souris, positionner


Répondre à ce message

Sujets en rapport avec ce message

Curseur en haut avec SetCursorPos [ par Profite ] Bonsoir,J'ai lu les divers posts sur ce sujet mais je n'ai rien trouvé.Je veux faire un petit programme qui clic automatiquement à un endroit de l'écr Contrôle du curseur souris - mini budget 10 euros [ par crustea ] Hello tous,Je suis développeur (mais pas VB du tout) et j'ai besoin d'un tout petit programme en VB, je me suis dit que c'est sans doute ici le meille API pour detecter un objet sous le curseur [ par mickey91 ] Salut,Voici mon problème :J'ai créé une macro (avec l'aide de certains d'entre vous!) qui fait parcourir le curseur de ma souris sur toute une page we le curseur de la souris attaché en un en point ? [ par itsas2005 ] en fait je vous explique je suis entrain de faire un petit site ou le curseur de la souris se transforme  en prise electrique, pour entrer sur le site curseur visible dans impression d'écran [ par odan71 ] salut à tous,ma question est dans le titre : j'aimerais, quand je fais une impression d'écran via vb, avoir également le curseur (pour pouvoir faire u souris dans un formulaire [ par 1217meyrin ] bonjour,comment forcer la souris a rester à l'intérieur d'un formulaire en vb.net Comment faire une condition d'attente sur le curseur de la souris ??? [ par johann91 ] Bonjour à tous, je débute en  VBS et je cherche comment faire un test conditionnel sur le curseur de la souris. Je m'explique : je voudrais faire une position de curseur de souris [ par sebtralalaetph ] Bonjour a tous, quelqu'un peut me dire comment placer mon curseur de souris a la fin du texte qui est deja present dans ma textbox? merci d'avance.    Changer le curseur de la souris en curseur perso en vb.net [ par emma16 ] Bonjour à tous...J'ai une petite question...très simple en vb6 mais en vb.net...Voila j'ai poser un boutton (button1) sur ma form (form1). J'aimerai q


Nos sponsors

Sondage...

CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.