C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 30 - TPen / С++ Builder 5 / Borland C++

Шаг 30 - TPen

По-русски будет перо. Немного о режимах проведения линий. Справка C++Builder выдает их так много, что задумываешься - зачем они все нужны? Но неважно, изучать, так изучать! Сначала о режимах наложения красок.

Любой цвет TColor представляет собой число - перечислимый тип. С числом возможны бинарные операции - and, or, not, xor, not xor и т.д. Так и здесь - смешивание основано на бинарных операциях, когда сравниваются попарно биты двух цветов.

Mode

  • pmCopy - без смешивания - цвет пера перекрывает фон.
  • pmNotCopy - инверсный (операция not) цвет пера перекрывает фон.
  • pmNot - цвет фона заменяется на инверсный.
  • pmXor - xor наложение. Из пары битов возвращается 1, если только один из битов равен 1.
  • pmNotXor - сначала проводится pmXor, а затем результирующий цвет подвергается not-операции.
  • pmMask - логическое and между цветом пера и фоном - возвращается 1, если оба бита равны 1. Приводит к затемнению.
  • pmNotMask - сначала pmMask, а затем pmNot.
  • pmMerge - логическое or между цветом пера и фоном - возвращает 1, если оба бита не равны 0. Приводит к осветлению.
  • pmNotMerge - инверсный pmMerge.
  • pmNop - без изменений.
  • pmBlack - всегда черный.
  • pmWhite - всегда белый.

Хочу особо отметить pmNotXor - очень полезный режим. Объясню почему. Допустим, нужно водить курсор особой формы. Но после него же след остается! В режиме pmNotXor при повторной прорисовке восстанавливается цвет фона. Правда, в таком режиме цвет курсора будет меняться в зависимости от фона.

Style

Я уже говорил - стиль линии. Чем тут пунктирный-штрихпунктирный говорить, лучше картинку с разными вариантами приведу:

gif/30_1.gif (1125 b)

Напомню, что при ширине больше 1 стили, кроме psInsideFrame, здесь не приведенного, не используются. У меня просто для удобства широкие. Фоновый белый цвет в данном случае - цвет кисти Brush.

Про psInsideFrame. Бывает так, что программа использует звет из палитры High Color, а у бедного юзера только 256 цветов :(. В этом случае при ширине больше 1 в этом стиле цвет сглаживается до наиболее подходящего. Легче, правда, юзеру порекомендовать видеокарту сменить :).

Со свойствами разобрались. В следующем Шаге будет TBrush - кисть.


| |
Автор Аванесов Самвел.
[AD]