DDelec24
Messages postés109Date d'inscriptionjeudi 23 octobre 2003StatutMembreDernière intervention23 octobre 2007
-
21 mai 2005 à 11:59
DDelec24
Messages postés109Date d'inscriptionjeudi 23 octobre 2003StatutMembreDernière intervention23 octobre 2007
-
21 mai 2005 à 15:27
Bonjour!
Me voila avec une question surement bete, mais je n'arrive pas a la résoudre
Je veux positionner le curseur de ma souris a un emplacement.
je déclare donc =>
Private Declare Function SetCursorPos Lib "user32" _
(ByVal x As Long, ByVal y As Long) As Long
Je voudrais par exemple que le curseur ce positionne sur le "command1"
je fais donc =>
Call SetCursorPos(Command1.Left, Command1.Top)
BozzoDodo
Messages postés185Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention10 janvier 2008 21 mai 2005 à 12:14
Salut!
Alors dans ton code il y a plusieurs erreurs:
- les valeurs x et y sont celles de la position du
curseur sur l'écran. Si tu prends x=command.left et y=command.top, le
curseur se mettra dans les coordonnées (command.left, command.top) à
partir du coin haut à gauche de l'écran. Ton controle command1 se
trouve sur une feuille. Il faut tenir compte des coordonnées de
celle-ci.
- les coordonnées doivent être données en pixel:
command1.top renvoit des coordonnées en twips si la propriété scalemode
de ta feuille est 1 (Twip). Il faut donc convertir les coordonnées
twips en pixels.
Enfin, pour arriver à fait ce que tu veux, il faut utiliser ce code:
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Sub Command1_Click()
Dim RC As RECT
GetWindowRect Command1.hwnd, RC
SetCursorPos RC.Left, RC.Top
End Sub
L'api GetWindowRect retourne la position absolue de ton bouton sur l'écran et non par rapport à ta fenêtre.