Grab'n'Drag для Windows (перетаскивание рабочей области мышью)18.04.2023, 17:30. Показов 1002. Ответов 12
Хотел бы сделать что-то типа VB6ScrollwheelFix, для добавления возможности навигации перетаскивания рабочей области мышью. Раньше в FireFox-е было довольно популярное расширение Grab'n'Drab (сейчас GD задохся, но существует аналог ScorllAniwhere). Как говорят в ОС Linux такая возможность по дефолту назначена на средюю кнопку мыши. Пока экспериментирую на VBA. На сайте Microsoft есть пример для прокрутки растровтого изображения. Там после ScrollWindowEx, идет вызов UpdateWindow и SetScrollInfo. Не могу понять, что надо задать в последнюю функцию. Пока все, что получилось достичь на скриншоте. Основное действие происходит в строчках 91-96.
0
|
|||||||||||
| 18.04.2023, 17:30 | |
|
Ответы с готовыми решениями:
12
Реализовать Drag and Drop для mediaelement (перетаскивание файла в компонент) Размеры рабочей области для mdiChild окна Создание области для считывания, за пределами рабочей зоны |
| 18.04.2023, 17:41 [ТС] | |
|
Перетаскивание, то вроде работатет, но что-то не так с перерисовкой, баловство какое-то сплошное получается )
Видимо,что-то не так с параметрами ScrollWindowEx, или не хватает вызова SetScrollInfo, или может быть подскажете, как это лучше реализовать?
0
|
|
| 19.04.2023, 08:28 [ТС] | |
|
0
|
|
| 19.04.2023, 17:50 [ТС] | |
|
Не так все это просто, как оказалось. Скроллы двигаются отдельно, окно отдельно, горизонтальный со своим разрешением, вертикальный со своим, окно со своим. Весь вечер провозился рез. -ноль, надежда только на живительный готовый кодик, если бы такой подвернулся..
0
|
|
| 20.04.2023, 08:01 [ТС] | ||||||
|
Выскажу такую догадку, что все может быть намного проще. Давно не юзал сенсорный экран в Windows, но если я правильно помню, там можно таскать пальцем любые скролабельные области. Интересно бы узнать, какие там приходят сообщения к окну..
Добавлено через 2 минуты Придется наверное свой старый планшет стаскать на оживление батарейки. Добавлено через 3 часа 32 минуты С помощью SendMessageA можно двигать скролл всместе с областью, однако, пока не вполне понятно, как выщитывать для нее парметры.
0
|
||||||
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 20.04.2023, 17:54 | |
|
ну какие у тебя успехи
0
|
|
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||
| 20.04.2023, 18:26 | ||
|
Я скроллами никогда не занимался.
Добавлено через 2 минуты
0
|
||
|
|
|||
| 21.04.2023, 18:49 | |||
WORD == 2 байта == 16 бит. Следовательно, (HSB_Pos * 2 ^ 16) Or SB_THUMBPOSITION, это установка значения Pos в HIWORD и SB_THUMBPOSITION в LOWORD. Только это для горизонтального скролла. Вертикальный - это сообщение WM_VSCROLL.
1
|
|||
| 22.04.2023, 07:05 [ТС] | ||||||||||||
|
Главное есть рабочий код, который позволяет прокручивать скроллбар на указанное (как я понимаю) колличество пикселей от текущего положения, вместе с перерисовкой окна. Полная версия кода для Access. Если плясать от скроллбаров, по логике примерно понятно, что нужно делать. Во-первых нужно как-то узнать размеры перемещаемой области. Во-вторых, нужны размеры (параметры) скролл-баров. Зная размеры области и скроллбаров можно вычислить соотношение, зная которое можно вычислить на сколько пикселей продвинуть скроллбар при перетаскивании указателя мыши на столько-то пикселей (по горизонтали и по вертикали). Данный код (с vbforums.com) показывает как можно узнать парметры скролл-баров. Хотя он не работатет.
0
|
||||||||||||
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|||||||||||
| 22.04.2023, 10:34 | |||||||||||
|
Я по прокрутке окон, видел только майкрософтовский код надстройки этой стандартной для VB, для прокрутки колёсиком мыши)))
Это код из стандартной надстройки VB6IDEMouseWheelAddin. Эти команды позволяет осуществлять прокрутку окна. Добавлено через 3 минуты Кстати там так же есть полезные функции IsHorizontalScrollBar и IsVerticalScrollBar для любых окон. А стандартная работа определяющая hwnd идёт через WindowFromPoint. Код надстройки лёгкий на самом деле.
1
|
|||||||||||
| 22.04.2023, 10:34 | |
|
Помогаю со студенческими работами здесь
13
В рабочей области отображена надпись "Нажмите правую клавишу мыши над рабочей областью"
Перетаскивание квадрата мышью Перетаскивание символа мышью
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|