Я пытаюсь создать программу MFC, используя Myo.
Я сделал несколько элементов управления со списком для каждого жеста.
Это мой план.
Когда я выбираю опцию поля со списком, он должен работать как настоящая мышь.
(например: если я выберу вариант (Левый щелчок),
это должно позволить мне сделать Левый щелчок, когда я принимаю позу «Кулак» && Myo находится в состоянии разблокировки.
void CMyoControllerView::OnCbnSelchangeComboFist() {
int nIndex = m_combo_Fist.GetCurSel();
if(nIndex == 0) {// Left Click
if(collector.isUnlocked == true && collector.currentPose == myo::Pose::fist) {
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, NULL);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, NULL);
}
}
}
Однако этот код влияет только на мышь, только когда я меняю опцию (ТОЛЬКО ОДИН РАЗ!).
Я знаю, что не должен помещать этот код в код управляющего события.
Проблема в том, что я понятия не имею, куда мне его положить.
Я хочу, чтобы эта функция работала непрерывно, пока я не закончу эту программу.
(Как поток. У меня есть пять полей со списком, и у каждого есть различное событие мыши. Все пять функций должны работать вместе.)
Пожалуйста, дайте мне несколько советов.
Спасибо.
Создайте очередь действий. Пусть обработчик выпадающего списка поместит действие щелчка в очередь. Используйте отдельный таймер или поток для обработки действий, находящихся в очереди. Если необходимо повторить действие, поместите его обратно в очередь после его завершения.