J'essaie de configurer les commandes du clavier et de la souris pour un jeu spatial avec SlimDX et RawInput. Mon code actuel est le suivant:SlimDX RawInput avec WPF
Device.RegisterDevice(UsagePage.Generic, UsageId.Keyboard, DeviceFlags.None);
Device.KeyboardInput += new EventHandler<KeyboardInputEventArgs>(keyboardInput);
Device.RegisterDevice(UsagePage.Generic, UsageId.Mouse, DeviceFlags.None);
Device.MouseInput += new EventHandler<MouseInputEventArgs>(mouseInput);
Cependant, je lis ici: http://code.google.com/p/slimdx/issues/detail?id=785 que pour WPF je dois utiliser une surcharge différente pour Device.RegisterDevice()
, ainsi que l'attribution d'un HandleMessage en utilisant Device.HandleMessage(IntPtr message)
J'ai trouvé la correcte surcharge RegisterDevice() qui est:
RegisterDevice(UsagePage usagePage, UsageId usageId, DeviceFlags flags, IntPtr target, bool addThreadFilter)
Ce que je ne peux pas travailler, cependant, est:
1) Maintenant que je dois utiliser une cible, que dois-je définir comme cible?
2) D'où puis-je obtenir ce message IntPtr?
N'est-ce pas demander votre poignée de fenêtre? – Andy
Pour la cible? Je pensais que ce pourrait être, mais j'ai été incapable de le tester correctement sans résoudre la partie 2. –
Vous pouvez obtenir le handle d'une fenêtre WPF en utilisant la classe System.Windows.Interop.WindowInteropHelper, il suffit de créer une nouvelle instance en passant la fenêtre référence en tant que paramètre constructeur et sa propriété Handle est le IntPtr – Andy