2015-03-29 2 views
1

В настоящее время я пытаюсь проверить функцию щелкающей через следующую командуmouse_event MOUSEEVENTF_LEFTDOWN зарегистрирован как вкладка, а затем левый клик?

POINT cursorPos; 
GetCursorPos(&cursorPos); 
x = cursorPos.x; 
y = cursorPos.y; 
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); 
Sleep(1000); 
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); 
cout << x << endl; 
cout << y << endl; 

Однако, когда я запустить приложение, мышь не регистрирует й и у позиции, но когда я нажимаю вкладку, его зарегистрировали положение x и y. Это потому, что мое событие мыши зарегистрировано на кнопку вкладки? Есть ли способ проверить? Спасибо, я использую C++ CLI Visual Studio 2013.

P.S: Это не дубликат моего ранее заданного вопроса, потому что этот вопрос связан с обработкой событий мыши, а не тем, как обнаружить щелчок мышью, еще раз спасибо.

Cheers.

+0

Должно быть немного очевидно, что он не «регистрируется», потому что вы никогда не передавали их mouse_event(). И будьте осторожны, опция MOUSEEVENTF_ABSOLUTE, должна быть включена, когда x и y являются абсолютными координатами мыши вместо инкрементальной. –

+0

Привет @Hans Passant, я зарегистрировал их в следующих разделах: private: System :: Void panel1_MouseUp (System :: Object^sender, System :: Windows :: Forms :: MouseEventArgs^e). И как вы должны включить абсолютную опцию mouseevent? – TechNewb

+0

Хм, вы делаете это неправильно. Вы всегда используете mouse_event() для commandeer * another *. Нет никакого смысла в эмуляции мыши в вашей собственной программе, просто выполните код непосредственно в обработчике событий. –

ответ

1

Обнаружил комментарий Ханна, нет никакого смысла в эмуляции мыши в вашей собственной программе, я просто выполнил код в обработчике событий непосредственно.

Смежные вопросы