Используйте только использовать DirectInput при особых обстоятельствах
Хорошая вещь о цикле обработки сообщений Windows, используемой с GetMessage является то, что он использует 0% использование центрального процессора. Если вы выполняете непроцессорные интенсивные вещи, такие как ожидание ключа от пользователя, сбор данных от пользователя, например, в базе данных или в налоговой программе, или даже в текстовом редакторе, имеет смысл просто использовать сообщение Windows с getmessage. Я все вышеприведенные даты программы - это процесс, когда пользователь нажимает клавишу.
Все, что требуется для обработки ключей Windows, - это переход на эту программу. Мышь даже не должна быть в окне.
Специальные условия использования DirectInput
Если вам нужно: 1) Знайте, когда клавиша нажата и отпущена. Вы также можете не захотеть повторять ключи, обнаруженные как нажатия клавиш.
2) Обработать клавиши в фоновом режиме при переключении другой программы.
Если выполнено одно из указанных выше условий, используйте функцию directinput.
Если вы просто собираете данные от пользователя, вам нужно будет использовать команду sleep для приостановки выполнения программы. Вы хотите, чтобы программа имела 0% использования процессора в диспетчере задач, если программа просто сидит там, ожидая нажатия клавиш от пользователя.
Используйте функцию сна, чтобы программа спала, пока вы не захотите опросить прямой ввод для ключей.
Следовательно, прямой ввод просто отнимает время программирования, если вы выполняете обычную задачу сбора ключей от пользователя, как вы можете видеть.
Я хотел бы знать, почему я не должен использовать DirectInput. Спасибо – Adir
Отправлено Alex в http://stackoverflow.com/questions/2165230/should-i-use-directinput-or-windows-message-loop/2168067#2168067 – bobobobo