![]() |
|
Модераторы: diadiavova, gambit |
![]()
|
|
| IUMag |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.4.2012 Репутация: нет Всего: нет |
Нарисовал элипсы, не подскажите, как можно реализовать перемещение элипсов движением мышки? Модератор: Название темы должно отражать ее суть! |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Объект Graphics только прорисовывает изображение, после этого с ним уже ничего сделать нельзя. Нужно либо перерисовывать для каждого нового положения мыши(что проблематично), либо вообще реализовывать эту затею под WPF, там используется векторная графика, а не растровая, так что под подобные задачи эта технология заточена лучше. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| IUMag |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 2.4.2012 Репутация: нет Всего: нет |
Если перерисовывать, то нужно перерисовывыть холст в событии MouseMove ?
|
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Уж не знаю, что там за холст, но перерисовывать придется всю картину. К тому же надо будет включить двойную буферизацию, чтобы это дело не дрожало. Для этого придется для каждого объекта картины, создать свой класс, который будет себя прорисовывать, загрузить экземпляры этого класса в коллекцию и при каждой перерисовке контрола, придется эту коллекцию обходить и вызывать метод прорисовки. Это вкратце. Таким образом перерисовку надо выполнять в обработчике события Paint или, если это делается в собственном контроле, то переопределить в нем метод OnPaint, а для того, чтобы это дело вызывалось не только в стандартных ситуациях прорисовки, а и при движении мыши, в обработчике события MouseMove надо будет вызывать метод Invalidate.
Для понимания того, как это все работает, можно поупражнятся, но для решения практической задачи лучше WPF. Можно еще взглянуть на Visual Basic Power Pack, там базовые типы, для таких фигур уже реализованы и можно под винформами что-то наваять, но тем не менее настоятельно рекомендую WPF -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
![]()
|
| Правила форума VB .NET | |
|
|
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |