Verwenden Sie die Nur-verwenden Direct unter besonderen Umständen
Die nette Sache über die Windows-Nachrichtenschleife mit GetMessage verwendet wird, ist, dass es verwendet 0% CPU-Auslastung. Wenn Sie unprocessorintensive Dinge tun, wie das Warten auf einen Schlüssel vom Benutzer, Sammeln von Daten vom Benutzer, wie in einer Datenbank oder einem Steuerprogramm oder sogar einem Textverarbeitungsprogramm, ist es sinnvoll, nur die Windows-Nachricht mit getmessage zu verwenden. Ich alle oben genannten Programme Datum ist der Prozess, wenn der Benutzer eine Taste drückt.
Alles, was die Windows-Meldungsschleife benötigt, um Schlüssel zu verarbeiten, ist für das Programm, zu dem gewechselt werden soll. Die Maus muss nicht einmal im Fenster sein.
Besondere Umstände bedienDirect
Wenn Sie zu: 1) wissen, wenn eine Taste gedrückt und losgelassen wird. Sie möchten vielleicht auch nicht Schlüssel wiederholen, die als Tastendruck erkannt werden.
2) Tasten im Hintergrund bearbeiten, wenn auf ein anderes Programm umgeschaltet wird.
Wenn eine der obigen Aussagen zutrifft, dann verwenden Sie directinput.
Wenn Sie nur Daten vom Benutzer sammeln, müssen Sie den Befehl sleep verwenden, um die Ausführung des Programms zu unterbrechen. Sie möchten, dass das Programm im Task-Manager eine CPU-Auslastung von 0% hat, wenn das Programm gerade dort sitzt und auf die Schlüssel des Benutzers wartet.
Verwenden Sie die Schlaffunktion, um das Programm in den Ruhezustand zu versetzen, bis Sie die direkte Eingabe für Schlüssel abfragen möchten.
Daher vergeudet direkte Eingabe nur Programmierzeit, wenn Sie eine einfache gewöhnliche Aufgabe des Sammelns von Schlüsseln vom Benutzer tun, wie Sie sehen können.
Ich würde gerne wissen, warum sollte ich DirectInput nicht verwenden. Danke – Adir
Antwort von Alex in http://stackoverflow.com/questions/2165230/should-i-use-directinput-or-windows-message-loop/2168067#2168067 – bobobobo