VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009
-
26 juin 2007 à 16:35
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
27 juin 2007 à 10:54
Bonjour à tous!
J'aimerais savoir si quelqu'un connait une API permettant de récupérer la forme (l'image) du curseur de la souris pour pouvoir la comparer à l'image d'une picturebox par exemple. J'ai trouvé GetCursor mais je pense pas que ce soit ça (http://allapi.mentalis.org/apilist/GetCursor.shtml).
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 27 juin 2007 à 01:47
salut
tien c'est cadeau
Option Explicit
'
Private Const OCR_CROSS As Long = 32515 '"Crosshair" - Croix (en forme de +).
Private Const OCR_IBEAM As Long = 32513 '"IBeam" - Curseur de saisie (en forme de I).
Private Const OCR_APPSTARTING As Long = 32650 '"AppStarting" - Flèche + Sablier.
Private Const OCR_NO As Long = 32648 '"No" - Symbôle interdiction.
Private Const OCR_NORMAL As Long = 32512 '"Arrow" - Curseur par défaut (flèche).
Private Const OCR_SIZE As Long = 32640 '"Size" - Flèche en croix (en forme de X). <--
W95
Private Const OCR_SIZEALL As Long = 32646 '"SizeAll" - Flèche en croix (en forme de X).
Private Const OCR_SIZENESW As Long = 32643 '"SizeNESW" - Flèche Nord,Est-Sud,Ouest.
Private Const OCR_SIZENS As Long = 32645 '"SizeNS" - Flèche Nord-Sud.
Private Const OCR_SIZENWSE As Long = 32642 '"SizeNWSE" - Flèche Nord,Ouest-Sud,Est.
Private Const OCR_SIZEWE As Long = 32644 '"SizeWE" - Flèche Ouest-Est.
Private Const OCR_UP As Long = 32516 '"UpArrow" - Flèche pointant vers le haut.
Private Const OCR_WAIT As Long = 32514 '"Wait" - Sablier.
'
'-> dessine icone ou curseur sur un support avec
hDC
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As
Long, ByVal hIcon As Long) As Long
'
'-> charge un curseur en état
spécifié, lié à une instance (genre exe, res, ou windows)
Private Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As
Long
'
'-> créé
un curseur basé sur un fichier spécifié
Private Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
'
'-> détruit un objet graphique, ses ressources, et rend
invalide son Handle
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
'
'
Private Sub Form_Load()
Me.Width = 2805
Me.Height = 4245
End Sub
'
'
Private Sub Form_Paint()
Dim Cursor As Long
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 26 juin 2007 à 16:45
Je pensais comparer quelques pixels sur les deux images pour déterminer si l'image récupérée est par exemple celle de la picturebox 1 ou de la 2
Merci de ta réponse rapide!
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 26 juin 2007 à 18:52
Tu t'embarques mal, là...
Les curseurs (dont la grande majorité sont en noir/gris sur un fond d'une couleur rendue transparente) ne sauraient être valablement comparés avec leur image dans une picturebox (image qui, elle, n'aurait pas la transparence) à l'aide de quelques pixels, en admettant même que tu puisses en copier l'image....
Q>uelle est donc l'idée derrière cette recherche ? Si tu nous exposais clairement ce dont il s'agit, on pourrait peut-être trouver un moyen d'arriver à la concrétiser sans passer par cette manoeuvre étrange de comparaison d'images.
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 26 juin 2007 à 19:43
OK, je m'explique:
J'ai une appli (pas le source, une appli lancée) avec laquelle je dois fonctionner, mais elle n'est pas prévue pour. Donc, pour récupérer l'evenement qui m'interresse, je surveille le curseur, car il change au moment de cet evenement., Pour comparer, je regarde un pixel qui est particulier dans chaque image. Par exemple: admettons que le curseur "main" a le pixel [3;1] en noir, mais pas le curseur "souris". Je regarde si le pixel [3;1] du curseur que j'ai récupéré est noir, si oui, c'est une "main", et sinon c'est une "souris". Est-ce possible de faire ainsi
Sinon j'ai trouvé pour récupérer le curseur avec une combinaison des API GetCurseur et DrawIcon:
Private Declare Function GetCursor Lib "user32" () As Long
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
DrawIcon Me.hdc, 0, 0, GetCursor
Je vais continuer sur cette voie là, voir si je peut en tirer quelquechose
VBGenesis
Messages postés292Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention22 février 2009 27 juin 2007 à 09:41
Super merci beaucoup!
C'est sur ce principe que marche aussi la récupération du curseur.
Maintenant il ne me reste plus qu'à comparer!
Encore merci
VBGenesis