Hit-Parade .VB Research Center . Compteur
Accueil ~  Code ~  Programmes ~  Api ~  Forum ~  Cours ~  Livres ~  Quiz ~  Annuaire
~ 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 ~
 Rechercher un site :
  

~ 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 : Oui

Description :
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

Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr