Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перемещение фигур мышью, работа с растровыми изображениями 
:(
    Опции темы
IUMag
Дата 16.3.2013, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 2.4.2012

Репутация: нет
Всего: нет



Код

g.DrawEllipse(New Pen(Brushes.Black, 2), New Rectangle(e.X - 1, e.Y - 1, 2, 2))

Нарисовал элипсы, не подскажите, как можно реализовать перемещение элипсов движением мышки?

Модератор: Название темы должно отражать ее суть!
PM MAIL   Вверх
diadiavova
Дата 16.3.2013, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата

Перемещение точне
 smile 

Объект Graphics только прорисовывает изображение, после этого с ним уже ничего сделать нельзя. Нужно либо перерисовывать для каждого нового положения мыши(что проблематично), либо вообще реализовывать эту затею под WPF, там используется векторная графика, а не растровая, так что под подобные задачи эта технология заточена лучше.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
IUMag
Дата 16.3.2013, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 2.4.2012

Репутация: нет
Всего: нет



Если перерисовывать, то нужно перерисовывыть холст в событии MouseMove ?
PM MAIL   Вверх
diadiavova
Дата 16.3.2013, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Уж не знаю, что там за холст, но перерисовывать придется всю картину. К тому же надо будет включить двойную буферизацию, чтобы это дело не дрожало. Для этого придется для каждого объекта картины, создать свой класс, который будет себя прорисовывать, загрузить экземпляры этого класса в коллекцию и при каждой перерисовке контрола, придется эту коллекцию обходить и вызывать метод прорисовки. Это вкратце. Таким образом перерисовку надо выполнять в обработчике события Paint или, если это делается в собственном контроле, то переопределить в нем метод OnPaint, а для того, чтобы это дело вызывалось не только в стандартных ситуациях прорисовки, а и при движении мыши, в обработчике события MouseMove надо будет вызывать метод Invalidate. 
Для понимания того, как это все работает, можно поупражнятся, но для решения практической задачи лучше WPF. Можно еще взглянуть на Visual Basic Power Pack, там базовые типы, для таких фигур уже реализованы и можно под винформами что-то наваять, но тем не менее настоятельно рекомендую WPF


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0439 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.