Новые книги

Данный текст является переводом на русский язык описания одного из самых популярных стандартов постановки процесса разработки программного обеспечения (ПО).

Я публикую книгу на своем сайте в открытом доступе для того, чтобы все интересующиеся данным вопросом могли прочитать ее и получить необходимую информацию совершенно свободно и бесплатно. Причина в том, что те методики, которые описаны в данном стандарте, как я считаю, просто обязаны взять на вооружение те разработчики ПО, которые этим занимаются серьёзно. По крайней мере, это касается 2-го и 3-го уровней CMM, так как применение этих практик дает существенное повышение в производительности и устойчивости процесса разработки ПО.
В книге даются практические рекомендации по составлению наиболее распространенных видов деловых писем, включая переписку с религиозными и дипломатическими ведомствами.

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

Контекст устройства



Контекст устройства

С точки зрения программиста Windows является системой, не зависящей от устройств (device independent). Эту независимость со стороны Windows обеспечивает библиотека GDI32.dll, а со стороны устройства - драйвер этого устройства. С точки зрения программы связующим звеном между программой и устройством является контекст устройства (Device Context - DC). Если программе нужно осуществить обмен с внешним устройством, программа должна оповесить GDI о необходимости подготовить устройство для операции ввода-вывода. После того, как устройство подготовленно, программа получает хэндл контекста устройства, т.е. хэндл структуры, содержащей набор характеристик этого устройства. В этот набор входят:
 bitmap(битовая карта, изображение), отображаемый в окне,
 перо для прорисовки линий,
 кисть,
 палитра,
 шрифт
и т.д. Программа никогда напрямую не обращается к контексту устройства(кстати, эта структура не документирована Microsoft), она обращается к нему опосредствованно, через определенные функции. После того, как все действия произведены, и необходимость в использовании устройства отпала, программа должна освободить контекст устройства, чтобы не занимать память. Есть еще одна причина, из-за которой необходимо освобождать контекст устройства. В системе может существовать одновременно только ограниченное число контекстов устройств. Если контекст устройства не будет освобождаться после операций вывода, то через несколько перерисовок окна система может повиснуть. Так что не забывайте освобождать контексты устройств!

Когда программа требует контекст устройства, она получает его уже заполненным значениями по умолчанию. Объект в составе контекста называется текущим объектом. Само слово - текущий - говорит о том, что контекст устройства можно изменить. Программа может создать новый объект, скажем, bitmap или шрифт, и сделать его текущем. Замещенный объект автоматически из памяти не удаляется, его необходимо позже удалить отдельно. Само собой разумеется, что программа может получить характеристики текущего устройства. А вот изменить эти характеристики, увы, можно только через замену объекта (впрочем, это и так понятно).

Типы контекта устройства
Режим отображения
Пишем программу
Коды растровых операций