Новые книги

В книге рассматриваются базисные теоретические основы, необходимые для построения компиляторов, основные технологические приемы и методы их реализации. В ней приведены различные варианты заданий для выполнения лабораторного практикума по курсу «Системное программное обеспечение», а также примеры выполнения этих заданий. В каждом примере подробно рассматриваются все особенности его выполнения, как на этапе подготовки необходимой математической базы, так и на этапе программной реализации. В лабораторных работах автор обращает внимание на основные сложности, связанные с ее выполнением, а также на возможные типичные ошибки и недочеты, дает рекомендации по возможностям программной реализации, отличным от кода, приводимого в примерах.

Книга ориентирована на студентов, обучающихся в технических вузах по специальностям, связанным с вычислительной техникой. Но она будет также полезна всем, чья деятельность так или иначе касается разработки программного обеспечения.
Эта книга поможет вам быстро создать свой бизнес. Независимо от того, есть ли у вас собственное дело или вы только собираетесь начать его, она даст вам надежный ренет ускорения.

Задумайтесь о следующем: что, если бы вы могли осуществить выведение своего продукта на рынок подобно Apple или крупной голливудской студии? Что. если бы ваши потенциальные покупатели считали бы дни до того момента, когда они смогут купить ваш продукт? Что, если бы вы смогли обеспечить себе такое прочное позиционирование на вашем рынке, которое почти бы полностью устранило для вас конкуренцию? И вы могли бы делать все это, независимо от того, каким бы скромным ни был ваш бизнес или ваш бюджет?

Теперь вопрос заключается в следующем – вы в самом деле собираетесь начать работать медленно и вскоре угаснуть? Или же вы готовы осуществить старт; который изменит будущее вашего бизнеса и вашу жизнь?

Права на издание получены по соглашению с Morgan James Publishing. Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.

Несколько слов о заполнении объектов



Несколько слов о заполнении объектов

Как читатель уже знает, заполнение замкнутых графических объектов происходит с помощью текущей кисти. Программист может использовать предопределенную кисть, а может создать свою собственную, после чего сделать ее текущей с помощью функции SelectObject().

Простейшим видом кисти является так называемая сплошная кисть, которая создается с помощью функции CreateSolidBrush():

  WINGDIAPI HBRUSH  WINAPI CreateSolidBrush(COLORREF);
Единственный аргумент этой функции - цвет кисти (может, лучше сказать не кисти, а краски?).

Штриховая кисть создается с помощью функции CreateHatchBrush():

  WINGDIAPI HBRUSH  WINAPI CreateHatchBrush(int, COLORREF);
Первый аргумент этой функции - стиль штриховки. Возможные стили приведены в таблице.

Стили штриховки

Стиль штриховки Значение Описание Эффект
HS_HORIZONTAL 0 ---- Горизонтальная штриховка
HS_VERTICAL 1 ||||| Вертикальная штриховка
HS_FDIAGONAL 2 \\\\\ Наклонная слева направо штриховка
HS_BDIAGONAL 3 ///// Наклонная справа налево штриховка
HS_CROSS 4 +++++ Штриховка крестиком
HS_DIAGCROSS 5 xxxxx Штриховка косым крестиком

Второй аргумент указывает цвет штриховки.

И наконец, с помощью функции CreatePatternBrush() мы можем создать кисть, которая при заполнении будет использовать bitmap. В wingdi.h она описана следующим образом:

  WINGDIAPI HBRUSH WINAPI CreatePatternBrush(HBITMAP);
Уже по типу аргумента видно, что единственным аргументом этой функции является хэндл bitmap'а.

Эти три функции при успешном завершении возвращают хэндл созданной кисти. В том случае, если произошла какая-то ошибка, возвращаемое значение равно NULL.