Interaction avec une Form sans prise de focus (Virtual Keyboard)

Signaler
Messages postés
2
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
15 mai 2008
-
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
-
Salut à tous,
Je me permet de venir vers vous car me voilà confronté à un problème pour lequel je suis à cours d'idées et de capacité pour le résoudre !

Dans le cadre d'un projet de clavier virtuel, une Form se charge de représenter la skin du clavier ; nous interceptons les évènements de la souris pour en faire ce que nous voulons. Tout marche bien, on peut écrire dans les documents avec une Form qui n'a pas de focus.
Seulement, la ou le bas blesse, c'est lorsque le menu démarrer de Windows (ou tout autre menu d'applications comme les Systray etc...), chevauche la skin l'évenment du clic n'est pas récupéré par Windows MAIS par la Skin !
Comment faire ? Supprimer notre hook souris et revoir totalement la gestion de la souris ? Utiliser des APIs Windows bas niveau qui écouteraient lorsque le menu démarrer est ouvert ou systray ou autre...

Je vous remercie d'avance de vos réponses !

3 réponses

Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
18
pourquoi utiliser un hook souris? en cas de gotfocus de la form, récupérer les coordonnées d'écran de la souris, puis simuler le click du bouton a cet endroit. Le résultat est bien moins lourd et complexe (et moins risqué qu'un hook), tout en résolvant ce problème...as tu des contraintes qui t'empechent d'utiliser cette solution?
Messages postés
2
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
15 mai 2008

Le but du Hook est d'empêcher la Form de prendre le focus.
Pour cela, on "Cancel" les events souris du ButtonDown et ButtonUp ce qui fait que Windows ne sait pas que nous avons cliquer mais uniquement nous, et nous traitons par la suite ce qu'on veut de tout ca.
Seulement, comme Windows ne sait pas qu'on a cliquer on peut plus intérargir avec un menu qui chevaucherait notre Form ! --> Tout le problème est la.
Faut-il coder un nouveau HOOK qui récupère les events windows bas niveau d'activation des fenêtres ...? Ou autre... Voila nos questions !
Merci d'avance.
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
18
et dans le gotfocus de la form, tu peux pas juste simuler l'appui sur le bouton aux coordonnées du click, puis reperdre le focus?