Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перетаскивать курсор медленей 
:(
    Опции темы
mrgloom
Дата 11.9.2013, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



Допустим необходимо по нажатию клавиши сделать перетаскивание мыши более медленным(допустим мы перетаскиваем некий объект).
Есть событие OnMouseMove(UINT nFlags, CPoint point)  там мы имеет текущую точку, по идее мы можем завести некий счётчик который сдвигает наш объект на 1 пиксель при условии что мы мышку перетащили на N пикселей, тем самым замедлив перетаскивание, но проблема в том, что сам курсор мышки получается будет двигаться как обычно и будет отставать от объекта, как можно и его замедлить?

Добавлено через 13 секунд
хотя вроде нашел
http://msdn.microsoft.com/en-us/library/wi...v=vs.85%29.aspx
PM MAIL   Вверх
mrgloom
Дата 12.9.2013, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



похоже такой вариант не действует.

на нажатие точки мыши OnLButtonDown я записываю начальную точку startPt, потом на событие  OnMouseMove я имею текущую точку currPt, соответственно могу вычислить вектор и сохраняю направление вектора и сокаращаю длину в 2 раза, потом в конце OnMouseMove проставляю через SetCursorPos новую конечную точку вектора, но в итоге получается мигание и перебегание вектора видимо между тем что я проставляю и текущим положением. 
PM MAIL   Вверх
akizelokro
Дата 12.9.2013, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: нет
Всего: 5



Пишут, что в регистре правятся настройки мыши. Можешь на время работы программы задать их там.


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
mrgloom
Дата 12.9.2013, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



дело в том, что у меня скорость должна менять по нажатию на клавишу, т.е. может меняться несколько раз за время работы программы.
PM MAIL   Вверх
akizelokro
Дата 12.9.2013, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: нет
Всего: 5



Тут
Параметр SPI_SETMOUSESPEED


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
mrgloom
Дата 13.9.2013, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



такое решение работает, только проблема в том, что эта функция меняет глобальные настройки системы, т.е. можно изменить скорость мышки в системе ,которая будет сохраняться и после выключения программы, если не исправить на старое значение или если программа упадёт до этого.

Это сообщение отредактировал(а) mrgloom - 13.9.2013, 11:18
PM MAIL   Вверх
akizelokro
Дата 13.9.2013, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: нет
Всего: 5



Цитата(mrgloom @  13.9.2013,  11:17 Найти цитируемый пост)
такое решение работает, только проблема в том, что эта функция меняет глобальные настройки системы, т.е. можно изменить скорость мышки в системе ,которая будет сохраняться и после выключения программы, если не исправить на старое значение или если программа упадёт до этого.

Для возврата первоначальных настроек в этой ссылке есть ссылки (для опроса) GETMOUSESPEED что-то такое.
И, значит, что надо писать программу так, чтобы она не падала. 



--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0428 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.