![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| PAG |
|
|||
|
Новичок Профиль Группа: Awaiting Authorisation Сообщений: 10 Регистрация: 5.3.2009 Репутация: нет Всего: нет |
Помогите пожалуйста
Столкнулся с задачкой когда на картинке надо выделять отдельные места рамкой с текстом. Размеры рамки не предсказуемые. Число выделений произвольное. Самый простой способ выделения - рисование прямоугольника с инверсией путем установки режима инверсии при отрисовке:
Который позволяет стирать выделение повторной отрисовкой. Но как оказалось данный код воздействует только на отрисовку линий и заливку! А вывод текста игнорирует растровые операции. Есть ли способ вывести текст с инверсией цвета? |
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 8 Всего: 26 |
-------------------- ????? ??, ??????? ?????. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Кроме того, можно "накрыть" текст прямоугольником с инверсией, через PatBlt... Так оно еще заметнее будет. Мигать можно выделенными объектами... Рисовать "муравьиной" (бегающей) линией... В общем, нет предела извращениям, главное - вовремя остановиться!
-------------------- ... |
|||
|
||||
| PAG |
|
|||
|
Новичок Профиль Группа: Awaiting Authorisation Сообщений: 10 Регистрация: 5.3.2009 Репутация: нет Всего: нет |
Извините, коллеги - кто-то из нас не врубился.
SetBkColor - при чет тут? Речь идет о том, чтоьы написать ТЕКСТ на битмапе, а потом этот текст убрать, восстановив изображение. Если я даже "накрою" текст прямоугольником, то как я потом этот текст уберу и восстановлю изображение? Формировать динамические битмапы, в которые копировать подложку (заплаты) для последующего восстановления картинки под текстом крайне не эффективно. Они очень маленькие, их много и они все разные. Это можно, конечно, но есть ли простые средства инвертирования цвета текста? Вот в чем вопрос. Я так понял - никто не знает. Оччень жвль. Это сообщение отредактировал(а) PAG - 10.3.2009, 08:58 |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
PAG, инверсное рисование с SetRop2, носит кратковременный характер, использовать его при полноценном рисовании объектов, по крайней мере, нездорово, поскольку стоит лишь накрыть такую область прорисовки другим окном, вся прелесть, навороченная Rop'ами тут же улетучится и начнутся незапланированные инверсии,
поэтому использовать их следует только применительно к самому верхнему окну и, как правило, на время действия какой-либо popup-операции, например при выделении мышью какой-либо части или группы объектов, чтобы быстро подсветить область выделения опиши задачу и выложи процедуру рисования, тогда и будет что предложить, а пока ты это не сделал, твой вопрос настолько исчерпан, насколько ты его сформулировал -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| PAG |
|
|||
|
Новичок Профиль Группа: Awaiting Authorisation Сообщений: 10 Регистрация: 5.3.2009 Репутация: нет Всего: нет |
Плюнул на иныерсию и закрашиваю выделение через InvalidateRect(Rect).
Не эффективно, но просто Это сообщение отредактировал(а) PAG - 12.3.2009, 08:36 |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
нет, ну если речь только об инверсии текста, а не о его исключении (xor), то смотри сюда: http://msdn.microsoft.com/en-us/library/dd183441(VS.85).aspx
можно извлекать регион или "путь" текста, а дальше - работать с ним как хочешь пример тут: http://msdn.microsoft.com/en-us/library/dd145181(VS.85).aspx а для InvalidateRect есть пара InvalidateRegion -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |