Java / SWT: comment recevoir des événements de souris à partir d'une fenêtre intégrée

StackOverflow https://stackoverflow.com/questions/834771

  •  08-07-2019
  •  | 
  •  

Question

J'intègre une application Windows dans mon application SWT en utilisant 'reparenting'. Cette partie fonctionne bien. J'aimerais maintenant connecter mon application SWT à la file de messages afin que l'application intégrée reçoive les événements de déplacement de la souris.

Je vois que la classe du système d'exploitation dans SWT dispose d'un certain nombre de méthodes intéressantes pour ajouter des points d'ancrage, mais je n'ai pas encore trouvé comment les utiliser.

Quelqu'un peut-il aider?

Merci

Était-ce utile?

La solution

Cela devrait fonctionner, mais il faut utiliser réflexion pour appeler des non-API. Utilisez-le donc à vos risques et périls.

Utilisez la réflexion pour rendre Display.addControl () et Display.removeControl () accessibles. Ensuite, utilisez-le pour ajouter le HWND de l'application Windows et le contrôle propriétaire à l'objet Display. Désormais, lorsqu'un événement de déplacement de la souris est envoyé à l'application intégrée, le contrôle correspondant doit obtenir un événement de déplacement de la souris.

Pour faire bonne mesure, vous devez ajouter un DisposeListener sur le contrôle propriétaire et appeler removeControl () afin que les événements ne soient pas envoyés au HWND mort.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top