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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> GDI+ создание маркеров графических объектов 
V
    Опции темы
DenwerD
Дата 27.3.2008, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйсте, господа. Все наверное видели, как в различных графических редакторах (да и не только) какой нибудь рисуемый(отображаемый) объект (например текст, картинка) обрамляется рамкой которая содержит маркеры ( по углам ) для изминения ширины высоты сего объекта. У меня возник вопрос: какими способами (средствами) С# можно это реализовать. Например по щелчку мыши по объекту, отобразить маркеры по углам и рамку вокруг объекта.

Я предполагаю что нужно создавать свой контрол (Frame) и отрисовывать при щелчке вокруг него border, но как сделать маркеры и что бы они реагировали на события мыши? 
Возможно маркеры должны быть то же контролами (Marker) (на сколько я знаю только класс Control имеет события для мыши) и связать с классом Frame класс Marker т.е. Frame будет содержать массив  объектов Marker. Такие вот мои мысли.

Если у кого нибудь есть другие мысли или предположения по данной проблеме прошу высказать, посоветовать.

Заранее благодарен.
PM MAIL   Вверх
Dennnis
Дата 27.3.2008, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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




Цитата

Я предполагаю что нужно создавать свой контрол (Frame) и отрисовывать при щелчке вокруг него border, но как сделать маркеры и что бы они реагировали на события мыши? 

Так точно не получися.
Цитата

Возможно маркеры должны быть то же контролами (Marker) (на сколько я знаю только класс Control имеет события для мыши) и связать с классом Frame класс Marker т.е. Frame будет содержать массив  объектов Marker. Такие вот мои мысли.

Так получится, но помоему это слишком сложно.

Можно же просто создать контрол UserControl, в него засунуть другой контрол, какой-надо, а маркеры нарисовать на UserControl:
 +----------------------+
 |М +-------------+ М |
 |    |  Button1   |     |
 |М +-------------+ М |
 +----------------------+

Цитата

на сколько я знаю только класс Control имеет события для мыши

И все его потомки smile 
--------------------
Get Rich or Die Tryin'
PM   Вверх
rubbiroid
Дата 27.3.2008, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Мне кажется, что все куда прозаичнее. Есть некая коллекция изображеных элементов. Когда юзверь кликает на изображение, то вызывается что-то вроде:
Код

object MyObject = ObjectCollection.GetObjectAtXY(MouseClickPositionX, MouseClickPositionY);

ну а далее всеми правдами и неправдами рисуется рамка вокруг него.
PM MAIL   Вверх
DenwerD
Дата 27.3.2008, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Dennnis @ 27.3.2008,  11:35)
Цитата

Я предполагаю что нужно создавать свой контрол (Frame) и отрисовывать при щелчке вокруг него border, но как сделать маркеры и что бы они реагировали на события мыши? 

Так точно не получися.
Цитата

Возможно маркеры должны быть то же контролами (Marker) (на сколько я знаю только класс Control имеет события для мыши) и связать с классом Frame класс Marker т.е. Frame будет содержать массив  объектов Marker. Такие вот мои мысли.

Так получится, но помоему это слишком сложно.

Можно же просто создать контрол UserControl, в него засунуть другой контрол, какой-надо, а маркеры нарисовать на UserControl:
 +----------------------+
 |М +-------------+ М |
 |    |  Button1   |     |
 |М +-------------+ М |
 +----------------------+

Цитата

на сколько я знаю только класс Control имеет события для мыши

И все его потомки smile

 
 

Спасибо за вариант. Нужно попробовать. Но что то мне кажется 
что возникнут проблемы при реализации операции растягивания или сжатия если потащить мышью за один из маркеров в любую сторону.
PM MAIL   Вверх
Dennnis
Дата 27.3.2008, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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




Цитата

Спасибо за вариант. Нужно попробовать. Но что то мне кажется что возникнут проблемы при реализации операции растягивания или сжатия если потащить мышью за один из маркеров в любую сторону. 

Попробуй smile 
Мне кажется будет все OK smile 
--------------------
Get Rich or Die Tryin'
PM   Вверх
DenwerD
Дата 27.3.2008, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Dennnis @ 27.3.2008,  12:38)
Цитата

Спасибо за вариант. Нужно попробовать. Но что то мне кажется что возникнут проблемы при реализации операции растягивания или сжатия если потащить мышью за один из маркеров в любую сторону. 

Попробуй smile 
Мне кажется будет все OK smile

В этом можно убедится только опытным путём. Всем спасибо. Пока тема закрыта. Если будут проблемы продолжу под другой темой.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

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


 




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


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

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