GetWindowRect erreur

renocmoa Messages postés 134 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 10 mai 2012 - 13 nov. 2007 à 13:38
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 - 23 juil. 2010 à 10:38
bonjour,

pour gérer des évenements mousein et out je voudrais utiliser l'API GetWindowRect et GetCursorPos mais j'ai l'erreur suivante :

Tentative de lecture ou d'écriture de mémoire protégée

qulqu'un à une idée...

Merci

reno

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 nov. 2007 à 15:21
Salut
Manque d'info.
Instructions ? c'est peut-être la méthode qui n'est pas bonne
Variables dimensionnées proprement ?
Quel Windows ?
Un petit coup d'oeil sur les exemples de cette bibliothèque d'APIs --> http://logiciel.codes-sources.com/logiciels/API-Guide-197.aspx

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 nov. 2007 à 16:22
clair que sans un peu du code que tu as tenté de faire passer...
0
renocmoa Messages postés 134 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 10 mai 2012
15 nov. 2007 à 08:44
Merci pour API guide

mais en fait j'ai contourné le probléme. Mon usercontrol n'est jamais seul mais dans une collection affichée sous forme de liste sur un panel donc si la souris passe sur un des controls d'un usercontrol, ce dernier passe en "hot" (image de fond différente) et donc tous les autre passe en normal....

mais j'aurais quand m^me bien aimé savoir comment déterminer où est la souris de façon globale sur l'écran....

reno
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
23 juil. 2010 à 10:38
Bon sa date un peut mais mieux vaux tard que jamais
Ton problème viens de la déclaration de GetWindowRect. Le paramètre lpRect doit être déclarer en byref et non en byval
VB6
    Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, ByRef lpRect As RECT) As Long

    Private Structure RECT
        Public Left As Long
        Public Top As Long
        Public Right As Long
        Public Bottom As Long
    End Structure


VB.NET
    Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Integer, ByRef lpRect As RECT) As Integer

    Private Structure RECT
        Public Left As Integer
        Public Top As Integer
        Public Right As Integer
        Public Bottom As Integer
    End Structure


Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
Rejoignez-nous