Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Скроллинг колесом мыши Forms 6 / 7 сообщений из 7, страница 1 из 1
07.02.2011, 23:37
    #37103276
Parovozik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скроллинг колесом мыши Forms 6
Можно ли как-нибудь его включить?
...
Рейтинг: 0 / 0
08.02.2011, 09:21
    #37103483
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скроллинг колесом мыши Forms 6
Вообще-то когда создавался Forms 6, ни о каких колесах речи не было
...
Рейтинг: 0 / 0
08.02.2011, 10:42
    #37103677
flu4u
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скроллинг колесом мыши Forms 6
Можно включить только установкой стороннего софта (FreeWheel и т.д.).
...
Рейтинг: 0 / 0
16.06.2011, 09:27
    #37310334
longman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скроллинг колесом мыши Forms 6
можно включить через написанную ручками библиотеку на С
...
Рейтинг: 0 / 0
17.06.2011, 08:30
    #37312125
Avstep
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скроллинг колесом мыши Forms 6
longman,

У Вас есть пример такой библиотеки, а то я бы тоже хотел скроллинг в формах ?
Или какая здесь идея, к чему что привязывать ? (Хотя бы примерно)
...
Рейтинг: 0 / 0
17.06.2011, 09:54
    #37312246
longman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скроллинг колесом мыши Forms 6
Avstep ,
одно странно, что нигде подобного готового решения я не нашёл, когда возникла потребность в нём.. искал как в русско- так и англоязычном сегменте интернета. поэтому пришлось разбираться самостоятельно, хотя в С знание веесьмаа приблизительные. В результате всё оказалось более чем реально и достаточно просто, нежели выглядело на первый взгляд ( ограничение по ОС: не ниже Win2000 , думаю не проблема). Алгоритм и составляющие части таковы:
1. Составляющие:
- библиотека dll
- пакет в Forms 6i, который запускает процедуру из библиотеки dll с входными параметрами ( Hinstance, HWND )

2. Алгоритм работы библиотеки:
- Процедура установки хука ( SetWindowsHookEx ) на события мыши ( WH_MOUSE ) на текущий поток вызываемого приложения, т.е. Forms-ов ( GetCurrentThreadId() ) с указанием процедуры обработки этих отловленных событий ( MouseProc ). В целом это длинное предложение выливается в одну команду:) с использованием указанных опций в скобках.
- Процедура обработки событий мыши ( MouseProc ), в которой необходимо анализировать события типа WH_MOUSEWHEEL . Затем при его наличии необходимо получить структуру MOUSEHOOKSTRUCTEX , проанализировав значения полей которой можно сделать вывод о направлении и "длине" выполненного скролла. Последним шагом остаётся выполнить пересылку сообщения окну Forms с эмуляцией нажатия клавиш Up/Down или PgUp/PgDown (кому как предпочтительнее).

Вот и всё. Предваряя возможный вопрос об отсутствии структуры MOUSEHOOKSTRUCTEX в header-файле winuser.h, могу сразу ответить, что она имеется в свежих версиях IDE (к примеру Visual Studio 2010), изначально пытался обойтись упрощёнными средствами типа Dev-Cpp и несколькими его аналогами, но безуспешно, т.к. winuser.h в них имеет "старую" версию. Пробуйте, подробнее инструкции не найдёте;)
...
Рейтинг: 0 / 0
20.06.2011, 13:46
    #37315794
Avstep
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скроллинг колесом мыши Forms 6
longman,

Конечно попробую, но попозже - сильно много работы. А идея интересная !
...
Рейтинг: 0 / 0
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Скроллинг колесом мыши Forms 6 / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]