29 / 29 / 3
Регистрация: 11.02.2012
Сообщений: 339
|
||||||
1 | ||||||
Получение координат мыши на экране (в том числе за пределами формы)17.10.2013, 18:06. Показов 8837. Ответов 12
Метки нет (Все метки)
Здравствуйте! Как сделать чтобы при движение мыши в статус баре отражались координаты. НО не только координаты на форме программы, а везде. Тоесть даже если мышь за пределами программы.
Есть ли какойто обработчик?
0
|
17.10.2013, 18:06 | |
Ответы с готовыми решениями:
12
Получение координат элемента или координат мыши на элементе Координаты мыши за пределами формы Как отслеживать положение мыши за пределами формы Нужны виртуальные коды кнопок мыши, в том числе и скролла |
Почетный модератор
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
|
||||||
17.10.2013, 20:07 | 2 | |||||
А вы панели-то создали?
Вот просто вывод в статусбар:
0
|
29 / 29 / 3
Регистрация: 11.02.2012
Сообщений: 339
|
|
17.10.2013, 20:16 [ТС] | 3 |
В форме у меня все получается. Координаты выводит. Но мне надо чтобы координаты показывало даже если мышка находится за пределами формы.
0
|
29 / 29 / 3
Регистрация: 11.02.2012
Сообщений: 339
|
|
17.10.2013, 20:54 [ТС] | 5 |
0
|
Супер-модератор
|
||||||
17.10.2013, 23:30 | 6 | |||||
Сообщение было отмечено volvo как решение
Решение
Очень грубо - вот так:
2
|
29 / 29 / 3
Регистрация: 11.02.2012
Сообщений: 339
|
|
17.10.2013, 23:57 [ТС] | 7 |
Получилось, спасибо!
0
|
случайный прохожий
2934 / 1951 / 606
Регистрация: 20.07.2013
Сообщений: 5,160
|
|||||||||||
18.10.2013, 00:39 | 8 | ||||||||||
Способ без использования хуков - с помощью таймера (изначально укажем для него Interval = 1; Enabled = 1).
0
|
Супер-модератор
|
||||||
18.10.2013, 02:08 | 9 | |||||
Это нерабочий метод... Нельзя объявить переменную типа LPPOINT и потом с ней работать. Надо объявлять переменную типа, на который указывает LPPOINT:
2
|
случайный прохожий
2934 / 1951 / 606
Регистрация: 20.07.2013
Сообщений: 5,160
|
|
18.10.2013, 03:33 | 10 |
Благодарю за поправку, но тем не менее код работает без всяких "вылетов".
0
|
Супер-модератор
|
|
18.10.2013, 09:20 | 11 |
Еще раз: код не будет работать в общем случае. Либо дикое везение, либо неправда. Куда именно указывает lpPoint в момент, когда ты с помощью GetCursorPos получаешь координаты курсора - неизвестно никому. Локальная переменная не обязана инициализироваться компилятором. Так что указывать она может в любое место памяти. И что именно ты изменяешь вызовом GetCursorPos, и как именно это скажется на дальнейшей работе программы (если только указатель не указывает на область памяти, не принадлежащую твоему процессу, как в 15 из 15 случаев, когда я попробовал запустить программу с твоим кодом, и получал AV) предсказать невозможно.
Для интереса можешь пройтись отладчиком и посмотреть, куда именно пишутся координаты и что за значения там были раньше... Вот их ты теряешь навсегда, что бы это ни было... Хорошо если какой-то неиспользуемый участок памяти...
1
|
Почетный модератор
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
|
|
18.10.2013, 09:50 | 12 |
0
|
случайный прохожий
2934 / 1951 / 606
Регистрация: 20.07.2013
Сообщений: 5,160
|
|
18.10.2013, 16:40 | 13 |
Код исправил, но весьма странно, что почти за 3 года с момента написания "программы" (написана на Builder 2007), пусть я пользуюсь ей не часто, не выскакивало ни одного AV.
0
|
18.10.2013, 16:40 | |
18.10.2013, 16:40 | |
Помогаю со студенческими работами здесь
13
Масштабирование фигуры при задании координат за пределами формы Событие отпускания кнопки мыши когда курсор за пределами формы Получение координат мыши Получение координат мыши в 3D Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |