Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> заморочки с рисунками 
:(
    Опции темы
luba
  Дата 4.12.2002, 20:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











здравствуйте!!!!
посоветуйте пожалуйста, как и через что можно реализовать следующую вещь: мне нужно, чтобы при наведении на определенную часть картинки происходили некоторые действия, то есть хочется, чтобы программа чувствовала передвижения мыши на определенных участках картинки, проверять по координатам очень муторно, поскольку контуры нужной мне части рисунка очень сложные. Может быть мне создавать регион с контурами, идентичными нужной мне части, но тогда как потом узнать, что мышь пробежала по этому региону????
:withstupid
  Вверх
Step
Дата 4.12.2002, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



Создавай невидимые окна, формы регионов, размещай их, и в них обрабтывай свою мышку.


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
luba
Дата 4.12.2002, 20:25 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











так у меня получится ооооооооочень много форм, поскольку картинка очень большая и реагировать надо на большое количество ее частей
  Вверх
Grey
Дата 4.12.2002, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Можно сделать для картинки маску, на которой выделить нужные части и проверять точку на маске а не на картинке. Можно эту маску внедрить непосредственно в картинку, т. е. сделать bimap  с 4 байтами на цвет. Правда получаем ограничение что частей должно быть не больше 256.
PM MAIL   Вверх
luba
Дата 4.12.2002, 21:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











а можно поподробней по поводу внедрения маски в картинку???? может где какая ссылочка мне поможет, потому как я с графикой если честно работала мало
  Вверх
Step
Дата 4.12.2002, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



Цитата(Guest @ 04.12.2002, 13:02)
а можно поподробней по поводу внедрения маски в картинку???? может где какая ссылочка мне поможет, потому как я с графикой если честно работала мало

У тебя есть кортинка, ты создеш картинку таких же размеров, только записуеш туда картинку, в которой каждый регион выделен отдельным цветом, количество цветов на этой картинки необходимо установить 256 цветов.
Основная картника у тебя храниться в контексте устройсва окна, а вторая в совместимом контексте, при появлении движении мышки ты вызываеш функцию GetPixel только не для основного контекста, а для совместимого.
Эта функция вернет значения от 0 до 255, это значения и отвечает за то в какую область ты попала.
Примерно выгляди так.
Цитата

CDC * pdc=GetDC();
CDC * pdc2;
pdc2=new CDC;
pdc2->CreateCompatibleDC(pdc);
CBitmap a,b;
a.LoadBitmap(IDB_1); //зАГРУЗКА ОСНОВНОЙ КОРТИНКИ
b.LoadBitmap(IDB_2); //зАГРУЗКА МАСКИ
pdc2->SelectObject(&a); //ВЫБОР ОСНОВНОЙ КОРТИНКИ
pdc->BitBlt(0,0,x,y,pdc2,0,0,SRCCOPY);//КОПИРОВАНИЕ ЕЕ НА ЭКРАН    х,у -    размеры изображения.
pdc2->SelectObject(&b);//Вывод в маски в память.


функция обработки сообщения движения мышки
Цитата

//х,у- передаються в функцию
long a=GetPixel(x,y);
//a - номер области


Успехов, надеюсь помог.


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
luba
Дата 4.12.2002, 21:41 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











спасибо!!!
Вы мне действительно помогли!!!!!
  Вверх
Step
Дата 4.12.2002, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



Цитата(Guest @ 04.12.2002, 13:41)
спасибо!!!
Вы мне действительно помогли!!!!!

Мы очень рады что не зря сдесь отвисаем


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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