2009-05-05 7 views
15

J'essaie d'aider une personne handicapée avec un petit bout de code pour l'aider à jouer à un jeu plus facilement. Il est limité à une boule de commande et à un seul bouton.Empêcher le changement de focus sur la fenêtre

Actuellement, il utilise le clavier à l'écran et a réussi à jouer à d'autres jeux qui l'utilisent. J'ai créé un petit code pour essayer de rendre sa vie plus facile. Il utilise des boutons de vol stationnaire pour les touches. Lorsque le pointeur de la souris entre dans le bouton, il envoie la touche vers le bas, quand il se déplace sur le bouton, il envoie la clé vers le haut.

J'ai ce travail et je pense (ou j'espère) qu'il va l'aimer. Cela a plutôt bien fonctionné quand je l'ai testé.

Je souhaite y ajouter une fonctionnalité supplémentaire. S'il clique sur mon contrôle, je veux envoyer un autre coup de clé. Pas de problème, je peux le faire. Cependant, quand je fais cette fenêtre, je passe du jeu à mon contrôle.

Je trouve cela sur MSDN:

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/48737c2b-7e6f-4ade-ac1c-7dd2f5cc2b88/

Cela fonctionne pour empêcher ma fenêtre d'activation, mais il provoque toujours le jeu à perdre le focus. Je peux recentrer le jeu sur le jeu, mais je préférerais que cela ne perde jamais la concentration.

Je code en C# et WPF.

Quelqu'un a des idées sur la façon dont vous pourriez faire cela?

John Fenton

+0

Essayez cette page: http://stackoverflow.com/questions/2444842/keeping-an-application-on-top-and-in-focus-always/3338447#3338447 – MonkeyWrench

+0

Cela ne fonctionnerait pas tout à fait, MonkeyWrench. Cela garderait votre fenêtre sur le dessus, mais cela ne l'empêcherait pas de se concentrer sur le jeu. –

Répondre

2

Crochet dans certains crochets de souris bas niveau et le clavier, et votre application ne sera pas besoin de voler le focus et le remettre.

Jetez un oeil à this pastie of a simple WPF app, qui est fortement basé sur an article by Stephen Toub. Chaque fois que vous avez cliqué sur, n'importe où, un deuxième clic gauche est envoyé, donc vous double-cliquez efficacement. Vous pouvez atteindre votre objectif en cachant votre application à chaque fois que l'utilisateur clique, afin que votre application ne vole jamais son attention. Ensuite, détectez l'emplacement du clic et décidez si l'un de vos boutons aurait été enfoncé, et agissez en conséquence.

Je me rends compte que je suis en train de creuser cela dans le passé, mais j'espère que quelqu'un trouvera cette réponse utile. Bravo, et bon pour vous pour transformer votre programmation pour aider un compagnon humain!

Questions connexes