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

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

Восстановить пароль Регистрация
 
Бася
0 / 0 / 0
Регистрация: 26.09.2008
Сообщений: 19
02.03.2009, 20:16     отрисовка нестандартной штриховки средствами GDI. Как? #1
Доброго времени суток! встала проблема отрисовки штриховки, отличающейся от стандартной 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++
Как увеличить размер дин. массива средствами С++ C++
Как заставить не затирать окном полученную графику в GDI? C++
C++ GDI отрисовка и очистка
C++ Как создать XML файл стандартными средствами
C++ Как прочитать дату формата DD.MM.YY средствами stdio
C++ Обмен данными по COM порту на нестандартной скорости
Как подключить GDI+ в Code::Blocks? C++
Как рисовать в С++ средствами OpenGL C++
Создание bmp средствами gdi C++
C++ Как средствами windows сохранить exe в txt
Как избавиться от мерцания в gdi? C++

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

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

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