All Forums
 Категория Visio
 Форум Вопросы и ответы
 Фиксированное положение рисунка
Author Previous Topic Topic Next Topic  

Vicont

Russia
6 Posts

Posted - 03/07/2007 :  11:33:24
Как сделать, чтобы при двойном клике по
шейпу (обрабатывается макросом) рисунок
сохранял свое прежнее положение
- не перемещался ? Вроде это из-за фокуса
выделенного шейпа. Или нужно запоминать
предыдущее положение ?
Какие свойства нужно отслеживать (менять)?
Буду очень признателен за помощь.

mers

Russia
159 Posts

Posted - 03/09/2007 :  11:09:15
Здравствуйте.
Не очень понятен вопрос.
Какой рисунок не должен двигаться?
Изображение шейпа или видимая область схемы?

Если не должен двигаться шейп, используйте LockMoveX и LockMoveY.
Если не должна двигаться видимая область рисунка, то
1. можно использовать функции GetViewRect для получения видимого прямоугольника и SetViewRect для его установления.
2. При работе с шейпом в макросе, не выделять его.

Edited by - mers on 03/09/2007 11:29:10
Go to Top of Page

Vicont

Russia
6 Posts

Posted - 03/12/2007 :  14:00:43
Здравствуйте, mers и все -все -все.
Видимо я не очень ясно обозначил проблему.
Речь не об отдельном шейпе.
А важно чтобы при кликах по шейпам схема
со страницей не смещалась в окне(должна
быть как бы "приклеена" к экрану).
И хотелось бы чтобы страница и окно были
одного размера.
Что-то c GetViewRect и SetViewRect мне
не удалось достичь нужного результата.
Благодарю за внимание к вопросу.
Надеюсь на помощь.

Edited by - Vicont on 03/13/2007 17:07:38
Go to Top of Page

mers

Russia
159 Posts

Posted - 03/14/2007 :  16:37:45
Что конкретно не получилось с SetViewRect и GetViewRect
Go to Top of Page

Vicont

Russia
6 Posts

Posted - 03/15/2007 :  13:39:54
Добрый день !
Почему-то при повторных вызовах макроса
меняется масштаб.
Это даже заметно по процентам в поле
масштаба на панели инструментов.
Вот код:
wdt = ActivePage.PageSheet.Cells("PageWidth")
hgt = ActivePage.PageSheet.Cells("PageHeight")
ActiveWindow.SetViewRect 0, hgt, wdt, hgt
Из-за чего это может быть?
И еще Вы говорили
" При работе с шейпом в макросе, не выделять его."
Как это, если шейп выделяется по двойному клику ?
Есть какие-то средства снятия выделения ?
Спасибо за поддержку.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 03/16/2007 :  20:45:33
Не нравится мне Ваш код...
Я бы действовал вот так:
Dim a(4) As Double
ActiveWindow.GetViewRect a(1), a(2), a(3), a(4)
ActiveWindow.SetViewRect a(1), a(2), a(3), a(4)
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)