~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période. Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.
~ Rechercher ~
~ Annuaire VB ~
~ Partenaires ~
|
Fonction ScreenToClient
Declare Function ScreenToClient Lib "user32" ( _ ByVal hWnd As Long, _
lpPoint As POINTAPI) As Long
Versions : . Windows 95/98 : Oui . Windows NT : A partir de 3.1 . Windows 2000/XP : OuiDescription : Cette fonction transforme des coordonnées calculées à l'origine par rapport à l'écran en coordonnées par rapport une fenêtre. La structure POINTAPI contient la position d'origine en paramêtre d'appel et retourne la nouvelle position dans cette même structure.
Si la fonction renvoie 'Vrai', il n'y a pas eu d'erreur, sinon elle renvoie 'Faux'.
Type POINTAPI
x As Long
y As Long
End Type
Exemple d'utilisation :
' Exemple proposé par Michel Defert (micheldefert@free.fr)
' Placer un label sur la feuille, puis le code suivant :
' Position de X et Y par rapport a l'écran
Private Declare Function GetCursorPos Lib "user32" ( _
lpPoint As POINTAPI) As Long
' Position de X et Y par rapport a la fenètre et a GetCursorPos
Private Declare Function ScreenToClient Lib "user32" ( _
ByVal hwnd As Long, _
lpPoint As POINTAPI) As Long
Private Type POINTAPI
X As Long
Y As Long
End Type
' Affiche un point sous le curseur quand on clique sur la feuille
Private Sub Form_Click()
Dim pos As POINTAPI
GetCursorPos pos
ScreenToClient Me.hwnd, pos
Me.Label1 = "Position Horizontale X = : " & pos.X & vbCrLf & _
"Position Verticale Y = : " & pos.Y
Me.DrawWidth = 2 ' Pixel plus épais
Me.ScaleMode = vbPixels ' Feuille en mode Pixel
Me.PSet (pos.X, pos.Y), RGB(255, 0, 0) ' Affiche le pixel en rouge
Me.DrawWidth = 1 ' Pixel normal
Me.ScaleMode = vbTwips ' Feuille en mode Twip
End Sub
Retour à la liste des API |