| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Наложение цвета выводимого шрифта на изображение |
| Автор: Alexander777 31.12.2006, 14:15 |
| Я делаю в Visual C++ v. 6.0 вручную линейный индикатор в виде растущего закрашенного прямоугольника. На этот индикатор, в середину, я хочу вывести сколько процентов работы выполнено. Как сделать так чтобы цвет выводимых цифр сильно отличался и от закрашенной части индикатора и от незакрашенной части? Напрмер, как сделать, чтобы выводимый текст складывался с цветами уже выведенного изображения (прямоугольника) по xor? |
| Автор: _hunter 2.1.2007, 13:15 |
| можно и ксорить. а можно и самому закрашивать (цвета ты всеравно знаеш) т.е. делаеш так -- рисуеш прямоуголник. потом на временном dc рисуеш (DrawText/TextOut) текс. потому переносиш его попиксельно (GetPixel/PutPixel) (пиксели подложки (например цвет FFFFFF) не переносиш) переносиш на основную канву. а цвет пикселя выбираеш исходя из того -- перешел ли прогресс этот столбец или нет... |
| Автор: Alexander777 2.1.2007, 16:31 |
| а как создать временный dc? строка CDC dc даёт нулевые указатели на контекст устройства |
| Автор: zkv 2.1.2007, 17:39 | ||
например
|
| Автор: Alexander777 5.1.2007, 13:40 | ||
Почему-то функция GetPixel не работает (возвращает 0xFFFFFFFF)
|
| Автор: zkv 7.1.2007, 01:21 |
| удалил |
| Автор: Alexander777 11.1.2007, 01:44 | ||
| Да у меня что-то и не получается через GetPixel\SetPixel Для теста я сделал SDI приложение и набрал следующий код:
GetPixel возвращает ошибку Интересно, как сделать, чтобы GetPixel работал? |
| Автор: Earnest 12.1.2007, 09:39 |
| Ты не создал битмап и не выбрал его в совместимый контекст. А по умолчанию там выбран черно-белый битмап размером 1*1. |
| Автор: Alexander777 12.1.2007, 20:30 |
| Да, теперь всё работает Всем большое спасибо. |