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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Необычные кнопки 
:(
    Опции темы
4epT
Дата 21.1.2010, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый вечер! Подскажите пожалуйста как можно сделать необычный интерфейс. Вот например есть картинка (например лицо человека), и при двойном клике на какой то части лица нужно вызывать конкретную функцию ... например нажали на нос, вызвали функцию #1, на глаз #2 и так далее ...

Я пока что вижу 2 выхода:

1)Смотреть координаты куда был клик и на основе этого вызывать соответствующую функцию, но возникает проблема ... тогда изображение нельзя будет двигать.

2)Второе это разбить картинку на части, и каждая часть будет кнопкой ... но из за этого будет очень сложно получить нормальное изображение (имеется ввиду целое ...)
PM MAIL   Вверх
Экскалупатор
Дата 21.1.2010, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



4epT, можно попробовать размещать изображение как фон, а поверх него кидать контролы. можно  еще брать координаты мышки относительно окна в которое тыкает пользователь.
PM MAIL ICQ   Вверх
4epT
Дата 21.1.2010, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну если взять изображение как фон, и на него положить контролы, как эти контролы сделать невидимыми, но  чтобы на них можно было нажимать? ведь сама суть в том чтобы мы контролов не видели, а отдельные элементы были "кнопками" ...
PM MAIL   Вверх
Экскалупатор
Дата 21.1.2010, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



4epT, ну тогда просто определяй координаты мышки относительно окна. обрабатывай у формы событие MouseClick. у аргумента e есть параметры e.X и e.Y, это и есть координаты мышки относительно окна. дальше проверяй куда там юзер ткнул и обрабатывай.
PM MAIL ICQ   Вверх
SoWa
Дата 21.1.2010, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

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



А контролам нельзя придать форму полигонов, заранее созданных?
Если было бы можно- то можно разбить программно изображение на части и из них слепить полигоны, в форме которых замутить кнопочки smile


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
diadiavova
Дата 21.1.2010, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



4epT, вместо контролов создай собственный простой класс(RegionHandler например), который будет включать описываемую область и обработчик клика по ней. Далее произведи от того же пикчербокса свой класс, добавь в него коллекцию таких объектов RegionHandler, каждый из которых опишет, что надо делать если клик пришёлся именно на этот регион. При клике по твоему пикчербоксу проверяй на какой именно регион пришёлся клик и именно у него вызывай обработчик.  


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


Опытный
**


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

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



SoWa, а как можно сделать регион в форме картинки?smile и обрабатывать на нем клики ...
PM MAIL   Вверх
4epT
Дата 21.1.2010, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Скажите еще ... глупо будет разбить все изображение на квадратики и каждый квадратик запихнуть в свой Label ... и обрабатывать клик на Label и по имени узнавать на каком именно был клик ....
PM MAIL   Вверх
Экскалупатор
Дата 21.1.2010, 18:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



Цитата(4epT @  21.1.2010,  16:59 Найти цитируемый пост)
глупо будет разбить все изображение на квадратики и каждый квадратик запихнуть в свой Label 

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

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


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

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


 




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


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

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