USB->Joypad
-
Hallo
Ich habe in die WinApi FAQ gesehen und habe versucht mir ein Bild über die Ansteuerung des USB Ports zu machen.
In meinem Falle würde ich gerne herausfinden, ob nun ein bestimmter Button des Joypads gedrückt wurde. Gibt es dazu auch ein event oder muss ich immer ein Timer laufen lassen, was bei der Anwendung die ich schreiben will sehr nachteilig wäre.
Danke
-
MM_JOY1BUTTONDOWN
-
Das klingt gut, kannst du das etwas weiter ausführen?
-
Steht in der Hilfe (MSDN)
-
Ja, aber wie lässt sich das konkret abfangen.
Also meine idee jetzt gerade war, dass ich eben bei dem onMessage Event versuche das event in einer If Schleife abzufangen. Klappt aber bisher nicht...
Vielleicht nochwas: Es ist kein joystick sondern ein Ganepad... mal FAQ sehen...
[ Dieser Beitrag wurde am 30.03.2003 um 18:02 Uhr von PCMan editiert. ]
-
Hm, also ich müsste halt wissen wo diese Message hingeschickt wird.
Es kommt nämlich irgendwie nichts an, und es werden in den FAQ beispielen
nur WM Messages abgefangen. Nur wie mache ich das mit MM Mesages?
-
Runterladen und nach MM_JOY1BUTTONDOWN durchsuchen
http://www.haze-studios.com/GameWorkshop1.doc
-
Ah, das mit dem MESSAGE_HANDLER hab ich auch schon irgendwo gelesen.
Danke für die Help!
-
So, bin genau der Anleitung gefolgt, um ja keine Fehler zu machen.
Der Compiler meckert nicht, aber der Linker spuckt folgende fehler aus:
[Linker Error] Unresolved external '__fastcall TForm1::JMButtonUpdate(Messages::TMessage&)' referenced from E:\SOURCES\C++\GAMEPADEMITTER\UNIT1.OBJDas gleiche noch mit 2 anderen Funktionen.
Wo ist der Haken?Class declarations, okay.
Das Problem ist gelöst.[ Dieser Beitrag wurde am 31.03.2003 um 18:55 Uhr von PCMan editiert. ]
-
zeig mal die methode
TForm1::JMButtonUpdate
der linker findet sie nicht? hast du vielleicht vergessen sie zu programmieren?
-
Ich hab es gelöst, hab die Funktion tatsächlich nicht in der Unit1.cpp definiert gehabt. Naja, das Problem ist jetzt: Die funktionen
TForm1::JMButtonUpdate(TMessage &msg)
und
TForm1::JMMove(TMessage&msg)
werden nie aufgerufen.Nur nach durch das OnCreate event wird eine Funktion namens ShowDeviceInfo aufgerufen. Aber wenn ich eine Taste auf dem Gamepad drücke passiert garnichts.
Hab im Source ab und zu was ans memo geschickt (Variablen zum Initialisieren):
Joystick Count: 16
JoyResult ID1: 0
ID2: 0
JoyResult ID2: 165[ Dieser Beitrag wurde am 31.03.2003 um 19:22 Uhr von PCMan editiert. ]
-
Also das ist noch eine URL die ich zu diesem Thema mit google gefunden habe. http://www.citforum.ru/programming/advice/advice07.shtml
Soll damit jemand was anfangen können?
-
Welchen Teil davon verstehst du denn nicht ?
-
Also ich habe es wie in der Anleitung genau so gemacht. Diese Messages Handles geschrieben und die funktionen kreiert. Das Problem ist, es wird überhaupt garkeine Funktion aufgerufen wenn ich irgendeinen Button drücke!
Vielleicht fehlt noch irgendetwas, aber ich hab da garkeine Ahnung, und im Inet gibt es dazu auch kaum etwas.
btw, die einzige URL da oben, die es noch gibt ist russisch, deswegen[ Dieser Beitrag wurde am 31.03.2003 um 21:04 Uhr von PCMan editiert. ]
-
naj, gar nichts kann man nicht sagen:
http://bcbcaq.bytamin-c.com/MessagesToEvents.htmlauch wir arbeiten an derartigen Themen.
Poste doch mal die Header. Mal schauen woran es liegt.
-
Okay, mal schauen.
Danke man!