Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2013, 11:13   #1
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию PictureBox для карты

Добрый день форумчане, имеется картинка в виде карты, мне надо сделать чтоб при событии onMouseEnter картинка карты меняла цвет, а при событии onMouseLeave меняла на обратный с этим то проблем нет. Но кидаю на форму pictureBox а он ну грубо говоря квадратный а карта рельефная и получается что если я навожу на угол там где нету еще картинки события все равно срабатывают. как сделать чтоб pictureBox был по границе\контуру карты?

Последний раз редактировалось wm_leviathan; 04.02.2013 в 11:19.
wm_leviathan вне форума Ответить с цитированием
Старый 04.02.2013, 14:00   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

Я бы как-то так сделал.
Вне обработчика где-нибудь (например, Form_Load) берём картинку - кидаем в Bitmap, создаём массив bool[,] mask, двойным циклом по ширине и длине битмапа получаем пиксели mask = Bitmap.getPixel == цвет_прозрачности _вашей_картинки
В обработчиках получаем координаты мыши относительно пикчербокса - и смотрим по нашему массиву маске - если координата приходится на прозрачный пиксель, т.е. if(mask[x,y]) то мы "вне картинки", иначе - меняйте.
Думаю, та картинка, на которую изменилась первая имеет такие же очертания, и Leave мыши будет работать аналогично только условие смены картинки обратно - if(!mask[x,y]) .
Какие могут быть родные средства, а не вручную - затрудняюсь сказать.

Кстати , способ но нормально работает и многозонными картинками - только массив сделать из int или сразу Color - ну, конечно, в том случае, если сама картинка подходит для того чтобы по цветам пикселей выделять зоны.
phomm вне форума Ответить с цитированием
Старый 05.02.2013, 09:49   #3
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

спасибо за ответ. но наткнулся на неплохой исходник, немного поколдовав с ним, и повставляв отдельные элементы моей карты (что то вроде пазла) получилось весьма неплохо. может кому пригодится http://www.codeproject.com/Articles/...ms-and-Buttons
wm_leviathan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищем специалиста(смарт-карты,бонус.карты и т.п) modob1 Фриланс 3 20.01.2012 11:09
Карты для стратегий ZotaC Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 18.10.2011 12:48
Значки для легенды карты Loka Общие вопросы .NET 2 25.05.2011 08:27
создании карты для ММОРПГ dampirik Gamedev - cоздание игр: Unity, OpenGL, DirectX 9 06.03.2010 21:46
Карты для игр L_M Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 16.05.2008 15:08