Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Бася
0 / 0 / 0
Регистрация: 26.09.2008
Сообщений: 19
#1

отрисовка нестандартной штриховки средствами GDI. Как? - C++

02.03.2009, 20:16. Просмотров 588. Ответов 0
Метки нет (Все метки)

Доброго времени суток! встала проблема отрисовки штриховки, отличающейся от стандартной CreateHatchBrush. Цель - получить кисть, которой можно пользоваться как обычной, но у которой имеются фоновые и рисовательные пикселы.
Сам придумал следующее:
1)рисовать сначала чёрно-белую кисть, указывая SetROP2(hdc, R2_NOTMASKPEN), 2)потом такую же, но цветно - белую и опять же с SetROP2(hdc, R2_NOTMASKPEN), при этом цвет штриха-заранее инвертируется, чтобы в результате получить нужный цвет штриха(белый цвет при смешении с фоном и отрицании 2 раза даёт первоначальный цвет фона, а штрих смешивается с фоном в 1 раз даёт чёрный, потом инвертируется в белый, потом смешивается с нужным и инвертируется снова).
Работает, но надо много в программе переделывать, и немного через жопу получается, думается есть способ проще. Слышал что то про альфа канал в 32 битном цвете, но использовать не умею(CreateDIBitmap этого не понимает, да и остальные функции тоже). Подскажите идею как можно сделать такую полупрозрачную кисть, ато я уже совсем потерял надежду
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2009, 20:16     отрисовка нестандартной штриховки средствами GDI. Как?
Посмотрите здесь:

GDI отрисовка и очистка - C++
Доброго времени суток! Суть такова: Вывожу посредством GDI прямые на консольное окно. После завершения отрисовки мне нужно стереть...

Создание bmp средствами gdi - C++
Добрый день! Передо мной встала задача создать bmp файл, состоящий из изображений отрезком и прямоугольников, которые я научился уже...

Как избавиться от мерцания в gdi? - C++
Как избавиться от мерцания в gdi? Пробовал делать двойную буфферизацию с помощью CreateCompatibleBitmap и BitBlt, но не рисовался даже...

Как подключить GDI+ в Code::Blocks? - C++
Здравствуйте. Пытаюсь работать с графикой в Code::Blocks, но, найти GDI+ не удалось: т.е. ни библиотек, ни заголовочных файлов там...

Как через GDI нарисовать пиксел на окне? - C++
Как через GDI нарисовать пиксел на окне?

Как заставить не затирать окном полученную графику в GDI? - C++
Первый раз столкнулся с GDI и вот никак не могу допереть как заставить не затирать окном полученную графику... Графика выводиться потоком...

Обмен данными по COM порту на нестандартной скорости - C++
подскажите пожалуйста, как написать программу для обмена данными по COM порту на не стандартной скорости, например 10400бод.

Как рисовать в С++ средствами OpenGL - C++
Здравствуйте! Мне необходимо нарисовать треугольник в WinApi. У меня в программе выводится окно с треугольником, а при закрытии пустое окно...

Как создать XML файл стандартными средствами - C++
Как стандартными средствами записывать информацию в XML файл? Для начала не хочу пользоваться сторонними плагинами. К примеру как создать...

Как увеличить размер дин. массива средствами С++ - C++
Привет всем!!! Подскажите плз, как увеличить размер (т.е добавить один элемент в конец) динамического массива средствами С++. (new и...

Как прочитать дату формата DD.MM.YY средствами stdio - C++
Здравствуйте, вопрос такой - как в C++ прочитать с клавиатуры дату в формате ДД.ММ.ГГ, (с ведущим нулём) средствами scanf и записать...

Как средствами windows сохранить exe в txt - C++
Можно как то перевести любой файл(EXE, PDF, RTF, WORD, DjVu, RAR, TXT и др. ) в текстовый формат и сохранить в txt формате средствами...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru