Hit Test API

Signaler
Messages postés
81
Date d'inscription
jeudi 7 août 2003
Statut
Membre
Dernière intervention
7 novembre 2007
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonjour!!

J'aimerais savoir par quels moyens peut-on retrouver si un pixel d'une form est cliquable ou pas.

J'entends par cliquable, le fait de ne pas cliquer à travers, lorsqu'elle est soumise à des régions.


Y a t il une api qui peut faire le travail? une sorte de Hit Test

5 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
pas compris ...

ressemble a wm_hittest

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
je viens de comprendre... (faut le temps, j'ai un peu de mal au reveil, semble-t'il ^^)

donc oui, tu peux utiliser SendMessage et WM_HITTEST pour tester si le retour est HT_CLIENT (par exemple)

sinon, tu peux utilise l'API PtInRegion pour tester si un point particulier appartient a une region... (en faisant un GetWindowRgn avant, par exemple)
Messages postés
81
Date d'inscription
jeudi 7 août 2003
Statut
Membre
Dernière intervention
7 novembre 2007

Ahh, renfield!:)

merci:) j'essaye de suite ;)
Messages postés
81
Date d'inscription
jeudi 7 août 2003
Statut
Membre
Dernière intervention
7 novembre 2007

Pour le WM_HITTEST( ou Plutôt WM_NCHITTEST),

j'arrive qu'à obtenir un resultat par callwindowproc( un peu embêtant
car généralement destiné au subclassing, arrêtez moi si je me trompe).

Avec les mêmes paramètres,

SendMessage me renvoie tjs 0, autant dire rien

DefWindowProc Idem.


Comment faire alors pour ceci?


Pour les régions:


GetWindowRgn renvoie le type de region, pas un handle.

Y a t il une API qui renvoie un handle vers une region en fonction d'une Form? Merci.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
on doit pas lire la même doc ^^

http://msdn2.microsoft.com/en-us/library/ms534843.aspx

The GetWindowRgn function obtains a copy of the window region of a window.

<dt>hRgn</dt><dd>[in] Handle to the region which will be modified to represent the window region.
donc tu dois lui donner une region, que l'API modifie...

Renfield
Admin CodeS-SourceS- MVP Visual Basic</dd>