|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
|
Snowy |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Сам код какой-то кривой.
Странно, что вообще хоть что-то работает. |
|||
|
||||
DragonFire |
|
|||
Опытный Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: нет Всего: 9 |
В смысле? Что в нем кривого?
|
|||
|
||||
Snowy |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
У меня вообще не заработал.
|
|||
|
||||
DragonFire |
|
|||
Опытный Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: нет Всего: 9 |
Это просто код из библиотеки...
Для приложения он буден другим... |
|||
|
||||
mes |
|
|||
любитель Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 2 Всего: 250 |
У меня была подобная проблема. При событии программа не распозновала отрицателный поворот колеса. У тебя похоже таже проблема. Дело в типе. Delta должна быт' smallint.
кроме того непонятно зачем отнимать WHEEL_DELTA на неё надо делить. Вот смотри:
Это сообщение отредактировал(а) mes - 26.2.2006, 20:47 |
|||
|
||||
DragonFire |
|
|||
Опытный Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: нет Всего: 9 |
Всеравно не пашет...
У меня почему то всевремя lParam равен 0 |
|||
|
||||
mes |
|
|||
любитель Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 2 Всего: 250 |
Как именно не пашет? Насколько я понял, событие у тебя есть но параметры нулевые. Или как? |
|||
|
||||
mes |
|
|||
любитель Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 2 Всего: 250 |
может wParam равен 0 ? попробуй так (вместо Word поставь WParam):
|
|||
|
||||
DragonFire |
|
|||
Опытный Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: нет Всего: 9 |
Неа, компу пофигу
|
|||
|
||||
Snowy |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Добавлено @ 19:41 Приаттачиваю откомпилированный exe. Он ничего не делает, кроме реакции на колесо мыши. Присоединённый файл ( Кол-во скачиваний: 17 ) wmmwheel.zip 2,94 Kb |
|||
|
||||
mes |
|
|||
любитель Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 2 Всего: 250 |
в моём коде была опечатка: вместо HiWord, я написал hi. ( Исправил в коде).
не согласен с этой строчкой, так как подобное применение противоречит "замыслу" параметра Wheel_Delta. Должен признать, что такой код работает, но не могу согласится с тем , что он работает и будет работат правильно. Wheel_Delta введена для обратной совместимости, когда мышки будут за одно сообщение передавать не один шелчок, а группу. WParam в зависимости от направления должен быть равен Wheel_delta или -Wheel_Delta (120 или -120). Однако "проверив" значения WParam мы обнаруживаем, что он равен либо 120 или 65416. Причина етого недоразумения в несоответствии типов. Word (65416) = 65416 Integer(65416) = 65416 Smallint(65416)=-120 ! Обратили внимание что при преобразовании в тип Integer,( который может принимать отрицательные значения), значение остается положительным, а преобразовании в тип SmallInt даёт то, что мы утеряли. Добавлено @ 21:30 Еше хотелось бы сказать по поводу сообщениa WM_MOUSEWHEEL: его может получат только активное окно. поэтому используйте SetFocus. |
|||
|
||||
Snowy |
|
||||||
Эксперт Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Хотя, конечно, если все делать по честному, то код будет выглядеть так:
|
||||||
|
|||||||
mes |
|
|||
любитель Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 2 Всего: 250 |
Не могу точно сказать, но вроде предусмотрено для более чуствител'ных мышек, у которых несколько шелчков соответствуют одному щелчку колесика обычной мышки. |
|||
|
||||
DragonFire |
|
|||
Опытный Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: нет Всего: 9 |
mes
Я еще раз все попробовал, но всеравно не пашет - как ни крути в любом случае значение ZScroll только увеличивается... Snowy Архив скачал - ща буду разбиратся... |
|||
|
||||
DragonFire |
|
|||
Опытный Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: нет Всего: 9 |
Все, я понял!
Оба кода рабочие, тока везде надо писать так:
Все, отладил Спасибо обоим большое |
|||
|
||||
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |