begin process at 2012 02 16 19:10:05
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > MOUSEOUTOFWINDOW() AVEC LES API WINDOWS

MOUSEOUTOFWINDOW() AVEC LES API WINDOWS


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Niveau :Débutant Date de création :20/05/2002 Date de mise à jour :20/05/2002 21:10:48 Vu :2 311

Auteur : Hypopotamus

Ecrire un message privé
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Fonction qui permet de savoir quand le curseur de la souris quitte une fenêtre ou entre dans une fenêtre  

Source

  • '----- DANS UN MODULE -----
  • '***** TYPE UTILISE PAR L'API GETWINDOWRECT() *****
  • Private Type RECT
  • Left As Long
  • Top As Long
  • Right As Long
  • Bottom As Long
  • End Type
  • '***** TYPE UTILISE PAR L'API GETCURSORPOS() *****
  • Private Type POINTAPI
  • X As Long
  • Y As Long
  • End Type
  • '***** API POUR OBTENIR LES COORDONNEES DE LA FENETRE *****
  • Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
  • '***** API POUR OBTENIR LES COORDONNEES DU CURSEUR *****
  • Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
  • '***** FONCTION DETERMINANT SI LE CURSEUR EST DANS LA FENETRE OU NON
  • Public Function MouseOutOfWindow(handle As Long) As Boolean
  • Dim R As RECT 'déclaration de la variable qui reçoit les coordonnées de la fenêtre
  • Dim Pos As POINTAPI 'déclaration de la variable qui reçoit les coordonnées du curseur
  • GetWindowRect handle, R 'renvoie les coordonnées de la fenêtre dans <R>
  • GetCursorPos Pos 'renvoie les coordonnées du curseur dans <Pos>
  • 'renvoie FALSE si le curseur est dans la fenêtre, et TRUE si le curseur est à l'extérieur
  • MouseOutOfWindow = (Pos.X <= R.Left) Or (Pos.X >= R.Right) Or _
  • (Pos.Y <= R.Top) Or (Pos.Y >= R.Bottom)
  • End Function
  • '----- DANS LE CODE D'UNE FORM (POUR L'EXEMPLE) -----
  • Private Sub Timer1_Timer() 'interval=20
  • If MouseOutOfWindow(Form1.hwnd) Then
  • Form1.Caption = "En dehor"
  • Else
  • Form1.Caption = "A l'intérieur"
  • End If
  • End Sub
'----- DANS UN MODULE -----

'***** TYPE UTILISE PAR L'API GETWINDOWRECT() *****
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

'***** TYPE UTILISE PAR L'API GETCURSORPOS() *****
Private Type POINTAPI
    X As Long
    Y As Long
End Type

'***** API POUR OBTENIR LES COORDONNEES DE LA FENETRE *****
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
'***** API POUR OBTENIR LES COORDONNEES DU CURSEUR *****
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long


'***** FONCTION DETERMINANT SI LE CURSEUR EST DANS LA FENETRE OU NON
Public Function MouseOutOfWindow(handle As Long) As Boolean

  Dim R As RECT	   'déclaration de la variable qui reçoit les coordonnées de la fenêtre
  Dim Pos As POINTAPI  'déclaration de la variable qui reçoit les coordonnées du curseur

    GetWindowRect handle, R   'renvoie les coordonnées de la fenêtre dans <R>
    GetCursorPos Pos              'renvoie les coordonnées du curseur dans <Pos>

    'renvoie FALSE si le curseur est dans la fenêtre, et TRUE si le curseur est à l'extérieur
    MouseOutOfWindow = (Pos.X <= R.Left) Or (Pos.X >= R.Right) Or _
                                    (Pos.Y <= R.Top) Or (Pos.Y >= R.Bottom)

End Function



'----- DANS LE CODE D'UNE FORM (POUR L'EXEMPLE) -----

Private Sub Timer1_Timer()                                       'interval=20
    If MouseOutOfWindow(Form1.hwnd) Then
       Form1.Caption = "En dehor"
    Else
      Form1.Caption = "A l'intérieur"
    End If
End Sub
  

 Conclusion

La fonction marche pour tous les objets ayant la propriété [HWND]. Par exemple, on peut utiliser la fonction avec un bouton, une frame, une textbox, une picture, ...
  Ex.: MouseOutOfWindow(Command1.hwnd)
         MouseOutOfWindow(Frame1.hwnd)
         MouseOutOfWindow(Text1.hwnd)
         MouseOutOfWindow(Picture1.hwnd)
  


 Sources du même auteur

Source avec Zip RESSOURCES CONCERNANT LES API WINDOWS
Source avec Zip MOT DE PASSE WINDOWS EFFICACE
Source avec Zip CRYPTAGE D'UNE CHAÎNE DE CARACTÈRE AVEC LA GRILLE DE VIGÉNÈR...

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) .NET DEPENDENCY VIEWER : ARBRE DES DÉPENDANCES D'UN ASSEMBLY... par ShareVB
Source avec Zip Source .NET (Dotnet) UTILITAIRE SKYDRIVE par MasterShadows
Source avec Zip ROTATION RAPIDE D'IMAGE par trex70
Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ... par Renfield
Source avec Zip Source avec une capture MOUSE SPEED AND WEIGHT : RETOUR DE FORCE VIRTUEL ! par ScSami

Commentaires et avis

Commentaire de vbmore le 21/05/2002 17:33:19

Connais-tu l'API TrackMouseEvent ?
Elle n'est pas présente dans W95, mais elle permet, grâce au subclassing, de détecté de events que VB6 ne reconnait pas ! (ex : sorite du curseur d'un contrôle, par exemple)

Seul pb : le subclassing implique un débugage casse-tête (beaucoup de contraite : pas de stop, pause, end. Execution de codes tout le temps) mais il sert à plaint de chose ( je parlerais et explique le subclassing en profofondeur ds 1 article qui sortita dans 1 ou 2 mois)

Bonne Prog. @+

Commentaire de vbmore le 21/05/2002 17:36:15

J'oubliais, pour les pressés, vous pouvez télécharger "ApiGuide" sur www.allapi.net : il contient beaucoup d'exemples dont celui de TrackMouseEvent

Vous pouvez aussi consulter la rubrique "Subclassing" sur ce site

A+

Commentaire de reivon le 22/05/2002 10:58:21

ba vla d'un code qu'est bien expliquer ! et merci pour l'adresse des api, ca sert !

Commentaire de rnosat le 02/01/2004 15:21:27

Super, ca marche bien ! !
Merci merci merci , et a bientot ... pour d'autres api !!
RnoSat

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales