Кручу-верчу - запутать хочу
Clarion, Clarion 7
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Гость
- StillZero
- Ветеран
- Сообщения: 458
- Зарегистрирован: 06 Июль 2005, 2:17
- Откуда: Хабаровск
- Поблагодарили: 1 раз
- Контактная информация:
я думаю если вы ищете keycode, то скорее всего вы не знаете что такое сабклассинг и событие WM_MOUSEWHEEL скорее всего тоже ни о чем не скажет
решение скорее всего проще чем вам кажется, не надо ничего обрабатывать - можно поставить стороннюю программу, например, FlyWheel, или от A4TECH. На гугле поищите. прямых ссылок нет к сожалению. Все заработает и в прогах на кларе и в самой кларе.
Если все же хотите разобраться, то код ниже, выдран из письма в рассылке:
T> Через сабклассинг окна.
NT> Map
NT> WinCliSubClassFunc(UNSIGNED hWnd,SIGNED wMsg,UNSIGNED wParam,LONG
NT> lParam),LONG,PASCAL
NT> MODULE('win32')
NT> CallWindowProc(LONG,UNSIGNED,SIGNED,UNSIGNED,LONG),LONG,PASCAL,NAME('CallWin
NT> dowProcA')
NT> END
NT> END
NT> WM_MOUSEWHEEL Equate(020Ah)
NT> SB_LINEUP Equate(0)
NT> SB_LINELEFT Equate(0)
NT> SB_LINEDOWN Equate(1)
NT> SB_LINERIGHT Equate(1)
NT> SB_PAGEUP Equate(2)
NT> SB_PAGELEFT Equate(2)
NT> SB_PAGEDOWN Equate(3)
NT> SB_PAGERIGHT Equate(3)
NT> SB_THUMBPOSITION Equate(4)
NT> SB_THUMBTRACK Equate(5)
NT> SB_TOP Equate(6)
NT> SB_LEFT Equate(6)
NT> SB_BOTTOM Equate(7)
NT> SB_RIGHT Equate(7)
NT> SB_ENDSCROLL Equate(8)
NT> Event Itemize(Event:User),Pre
NT> WheelDown Equate
NT> WheelUp Equate
NT> end
NT> SavedProcAddr LONG
NT> !После открытия окна
NT> SavedProcAddr = Window{PROP:ClientWndProc}
NT> Window{PROP:ClientWndProc} = ADDRESS(WinCliSubClassFunc)
NT> WinCliSubClassFunc Function(UNSIGNED hWnd,SIGNED wMsg,UNSIGNED
NT> wParam,LONG lParam)
NT> CODE
NT> Case wMsg
NT> of WM_MouseWheel
NT> If wParam < 0
NT> Post(Event:WheelDown)
NT> else
NT> Post(Event:WheelUp)
NT> end
NT> end
NT> RETURN(CallWindowProc(SavedProcAddr,hWnd,wMsg,wParam,lParam))
>> -----Original Message-----
>> From: ClaListAdmin@Clarion.ru [mailto:ClaListAdmin@Clarion.ru]On Behalf
>> Of Ross
>> Sent: Monday, December 13, 2004 9:52 AM
>> To: ClaList List Member
>> Subject: Обработка скроллинга мышки {01}
>>
>>
>> Доброе время суток всему уважаемому сообществу...
>> Подскажите пожалуйста, собственно сабж...
>> Где то в рассылке это уже было, но найти, к сожалению, не могу
Написал: PAA(27)

решение скорее всего проще чем вам кажется, не надо ничего обрабатывать - можно поставить стороннюю программу, например, FlyWheel, или от A4TECH. На гугле поищите. прямых ссылок нет к сожалению. Все заработает и в прогах на кларе и в самой кларе.
Если все же хотите разобраться, то код ниже, выдран из письма в рассылке:
T> Через сабклассинг окна.
NT> Map
NT> WinCliSubClassFunc(UNSIGNED hWnd,SIGNED wMsg,UNSIGNED wParam,LONG
NT> lParam),LONG,PASCAL
NT> MODULE('win32')
NT> CallWindowProc(LONG,UNSIGNED,SIGNED,UNSIGNED,LONG),LONG,PASCAL,NAME('CallWin
NT> dowProcA')
NT> END
NT> END
NT> WM_MOUSEWHEEL Equate(020Ah)
NT> SB_LINEUP Equate(0)
NT> SB_LINELEFT Equate(0)
NT> SB_LINEDOWN Equate(1)
NT> SB_LINERIGHT Equate(1)
NT> SB_PAGEUP Equate(2)
NT> SB_PAGELEFT Equate(2)
NT> SB_PAGEDOWN Equate(3)
NT> SB_PAGERIGHT Equate(3)
NT> SB_THUMBPOSITION Equate(4)
NT> SB_THUMBTRACK Equate(5)
NT> SB_TOP Equate(6)
NT> SB_LEFT Equate(6)
NT> SB_BOTTOM Equate(7)
NT> SB_RIGHT Equate(7)
NT> SB_ENDSCROLL Equate(8)
NT> Event Itemize(Event:User),Pre
NT> WheelDown Equate
NT> WheelUp Equate
NT> end
NT> SavedProcAddr LONG
NT> !После открытия окна
NT> SavedProcAddr = Window{PROP:ClientWndProc}
NT> Window{PROP:ClientWndProc} = ADDRESS(WinCliSubClassFunc)
NT> WinCliSubClassFunc Function(UNSIGNED hWnd,SIGNED wMsg,UNSIGNED
NT> wParam,LONG lParam)
NT> CODE
NT> Case wMsg
NT> of WM_MouseWheel
NT> If wParam < 0
NT> Post(Event:WheelDown)
NT> else
NT> Post(Event:WheelUp)
NT> end
NT> end
NT> RETURN(CallWindowProc(SavedProcAddr,hWnd,wMsg,wParam,lParam))
>> -----Original Message-----
>> From: ClaListAdmin@Clarion.ru [mailto:ClaListAdmin@Clarion.ru]On Behalf
>> Of Ross
>> Sent: Monday, December 13, 2004 9:52 AM
>> To: ClaList List Member
>> Subject: Обработка скроллинга мышки {01}
>>
>>
>> Доброе время суток всему уважаемому сообществу...
>> Подскажите пожалуйста, собственно сабж...
>> Где то в рассылке это уже было, но найти, к сожалению, не могу

Написал: PAA(27)
StillZero
Сообщение Гость »
Дрова от А4tech у меня установлены, и прокрутка в бровзах работает на ура. Но задача следующая: Есть окно, в нем - Image, который показывает текущее изображение из БЗ. Вот и хотелось бы с помощью колеса мышки (а не только по пробелу и бэкспэйсу), листать записи (картинки) вперед и назад. Имеються 2 подпрограммы, одна листающая вперед (по пробелу), другая - назад (по BSKey). Вопрос, как к этим уже имеющимся хоткеям добавить колесо мыши. Выше преведенная портянка кода - это то, что мне нужно?
Гость
- StillZero
- Ветеран
- Сообщения: 458
- Зарегистрирован: 06 Июль 2005, 2:17
- Откуда: Хабаровск
- Поблагодарили: 1 раз
- Контактная информация:
даВыше преведенная портянка кода - это то, что мне нужно?
вот эти строки отвечают куда крутанули вверх или вниз
и посылается событие в окно, соответственно в самом окне можно их обработатьNT> If wParam < 0
NT> Post(Event:WheelDown)
NT> else
NT> Post(Event:WheelUp)
NT> end
PS
подробнее о сабклассинге можно почитать например здесь http://www.pisoft.ru/verstak/Insider/col_subclass.htm
Написал: PAA(27)
StillZero
Вернуться в «CLARION for Windows»
Перейти
- CW
- ↳ CLARION for Windows
- ↳ CLARION for Internet
- ↳ Clarion.NET
- Эксклюзив
- ↳ Приват
- CLARION и...
- ↳ Reports
- ↳ Железо
- ↳ Готовые программы, шаблоны, библиотеки...
- ↳ cJSON
- ↳ LibCurl
- ↳ MAV
- ↳ SQL, Oracle, ...
- ↳ Multi-программирование(Pascal/Delphi, и т.д.)
- ↳ WinDev
- DOS
- ↳ CLARION for DOS
- Разное
- ↳ Новости
- ↳ English
- ↳ Ресурсы
- ↳ Работа
- ↳ Обо всем ...
- ↳ Обсуждение этого Форума (типа, Гостевая книга)