- •Управление курсором при редактировании текста
- •Задание 3. Реализация процесса управления курсором при редактировании
- •Подведение итогов
- •Глава 10. Интерфейс графических устройств
- •Контексты устройств и объекты gdi
- •Объекты контекста устройства и выбор инструментов рисования
- •Идентификаторы стандартных инструментов рисования
- •Создание инструментов рисования
- •Некоторые стили пера
- •Значения, передаваемые в макрос rgb() для генерации стандартных чистых цветов vga
- •Режим отображения
- •Установка графических атрибутов
Некоторые стили пера
Значение |
Семантика |
Ширина пера в пикселах |
PS_SOLID |
Сплошное перо |
Произвольная |
PS_DASH |
Штриховое перо |
1 |
PS_DOT |
Точечное перо |
1 |
PS_DASHDOT |
Штрихпунктирное перо |
1 |
PS_DASHDOTDOT |
Перо с чередованием линий и двойных точек |
1 |
PS_NULL |
Нулевое (пустое) перо |
Произвольная |
PS_GEOMETRIC |
Геометрическое перо |
Произвольная |
PS_COSMETIC |
Косметическое перо |
Произвольная |
PS_INSIDEFRAME |
Перо с размытым контуром |
Произвольная |
Рис. 10.2. Значения, присваиваемые параметру nPenStyle функции CPen::CreatePen() при инициализации пера
Параметр crColor задает цветовой код линии. Легче всего описать цвет, используя макрос RGB().
COLORREF RGB( BYTE bRed, BYTE bGreen, BYTE bBlue );
Параметры bRed, bGreen и bBlue показывают относительную интенсивность красного, зеленого и синего цветов. Каждому параметру можно присвоить значение в диапазоне от 0 до 255.
GDI предоставляет аппаратно-независимый интерфейс работы с цветом. Программа задает код цвета, и GDI отображает его на экране в виде подходящего цвета или сочетания цветов. Стандартная видеоплата VGA (Video Graphics Array — графическая видеоматрица) использует 4-разрядные коды цвета, и, следовательно, может отображать только 16 цветов. Каждый цвет в Windows представляется сочетанием значений красного, зеленого и синего цветов. 16 стандартных чистых цветов представлены в табл. 10.3. Чистый цвет — это цвет, генерируемый аппаратными средствами для видеоотображения. Этот цвет не требуется имитировать смешиванием различных цветов (известным как имитация полутонов (dithering)). Работающие с цветом функции GDI принимают в качестве параметра 32-разрядные значения COLORREF, содержащие 8-разрядные цветовые коды для красного, зеленого и синего цветов. Получение значений типа COLORREF осуществляется макросом RGB(), который преобразует 8-рязрядные коды в значение типа COLORRREF. Если вы задаете для кисти один из 16 стандартных цветов, то получаете чистый цвет, в противном случае — составной (dithered color). Если шаблон составного цвета очень сложный, то будет выбран наиболее близкий к нему чистый цвет.
Если Windows работает с видеоплатой, поддерживающей 256 цветов, то программа ограничена использованием уже 20 стандартных чистых цветов. Если вы используете систему цветовой палитры Windows, поддерживаемую MFC-классом CPalette, то можете выбрать любые 256 из 16,7 миллиона цветов. 24-рязрядная видеоплата, поддерживает 24-разрядное представление цвета, что позволяет отображать 16,7 миллиона чистых цветов, но при этом потребуется не менее 2,5 Мбайт видеопамяти.
В табл. 10.3 приведены значения, которые передаются в макрос RGB() для описания 16 чистых цветов, доступных в стандартном графическом режиме VGA.
Т а б л и ц а 10.3