Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Выполнять действие пока нажата кнопка


Автор: nikkadim 22.8.2012, 17:34
Подскажите плз, как можно отследить нажатую кноку чтобы выполнять действие в лупе до тех пор пока ее не "отожмут"? Нужно для реализации кнопочного джойстика.

Спасибо.

Автор: Cheloveck 22.8.2012, 18:33
http://msdn.microsoft.com/en-us/library/windows/desktop/ms646301%28v=vs.85%29.aspx

Автор: nikkadim 22.8.2012, 23:05
это я так понял проверяет нажатие кноки на клавиатуре? 
а если речь о кнопке CButton в интерфейсе?

Автор: Earnest 23.8.2012, 08:49
Так она может нажиматься и отжиматься программно - например если это checkboх type. И тоже есть запрос на проверку состояния - что-то типа BM_GETCHECK. А если ты имеешь в виду удержание в нажатом состоянии с помощью мыши (как стандартная кнопка: нажатие левой кнопки "нажимает" кнопку-контрол, отпускание - отпускает - то тоже самое, что с клавиатурой, точно также проверяется нажата ли кнопка мыши.
Еще надо проверять позицию мыши, т.к. если курсор съехал с кнопки, то кнопка тоже отпускается.
Обычно для инкапсуляции (в классе кнопки) при нажатии LBDOWN ставят Capture, чтобы отслеживать любые действия мыши, а при сходе с кнопки и LBUP capture снимают. Между этими двумя действиями кнопка нажата.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)