Посоветуйте элемент управления для прокрутки изображения на форме

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Аватара пользователя
EducatedFool
Сообщения: 197
Зарегистрирован: 06 апр 2008, 14:03
Откуда: Россия, Урал
Контактная информация:

Приветствую всех!

Суть задачи:
Надо отобразить на форме карту города, а поверх этой карты накладывать схему сети связи (рисовать линии разной толщины и квадратики).
Все необходимые данные (координаты) хранятся и расчитываются средствами VBA Excel.

Проблема: нужен скроллинг карты (она немаленькая, и на форму вся сразу ну никак не поместится). Как минимум - линейками прокрутки, как максимум - методом Drag&Drop плюс масштабирование колёсиком мыши.

Причём после щелчка мышью на карте нужно получать координаты относительно карты, а не формы. (ну это уже мелочи, это уже в любом случае можно вычислить)

Никак не могу найти подходящий элемент управления для отображения.

В стандартный контейнер типа Label или Image картинку засунуть-то можно, но как двигать картинку относительно контейнера - не понимаю. (нет там свойств вроде Picture.Top, а множество значений свойства Picture.Position ограничено константами)

В CorelDRAW всё подобное я делал без проблем (средствами VBA), там и масштабирование, и всё остальное, что только может понадобиться. Но вставлять на форму OLE-контейнер с файлом Corel как-то не хочется (цеплять к проекту 10-метровые библиотеки, или требовать от юзеров установки Corel-a - не лучшее решение), да и Excel начнёт тормозить...


Может, кто встречал такой контейнер для рисунков?
(необходимо, чтоб этот элемент управления выдавал координаты по событию Click - типа ByVal X As Single, ByVal Y As Single, и, главное, позволял двигать изображение внутри рамки)


Есть, конечно, другой вариант - положить карту прямо на лист Excel, и рисовать полоски тоже Excel-евскими Shape-ами,
так даже удобнее отслеживать события щелчков по Shape-ам, но Excel достаточно медленно отрисовывает большую карту (расположенную на листе) при масштабировании и прокрутке (увеличить производительность всех компов не получится), да и на форме это выглядит как-то поприличнее...
Vikar
Сообщения: 51
Зарегистрирован: 24 апр 2007, 14:21

Поместить на форму компонент Image, в него рисунок. Меняя значения Top и Left у компонента Image можно двигать его по форме.
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Если не жалко 100$ ;) можно воспользоваться
Image Viewer CP Pro ActiveX OCX SDK
Support keyboard or mouse wheel scrolling image
Андрей Энтелис,
aentelis.livejournal.com
Ответить