Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 32


Приватный контекст отличается от общего тем, что сохраняет измене­ния даже после того, как прикладная программа освободила его. Приват­ный контекст Fie хранится в кэше, поэтому прикладная программа может не освобождать его. Естественно, что в этом случае за счет использова­ния большего объема памяти достигается более высокая скорость работы j дисплеем.

Для работы с приватным контекстом необходимо при регистрации класса окна указать стиль CS OWNDC. После этого программа может получать хэндл контекста устройства точно так же, как и в случае общего контекста. Система удаляет приватный контекст в том случае, когда удаляется окно.

При работе с контекстами необходимо запомнить, что хэндлы кон-гекста устройства с помощью функции BcginPaint() необходимо получать только в случае обработки сообщения WM PAINT. Во всех ^стальных случаях необходимо использовать функции GetDCQ или iietDCEx().

35

Контекст принтера

При необходимости вывода на принтер программа должна создать контекст устройства с помощью функции CrealeDC(). Аргументы этой функции определяют имя драйвера устройства, тип устройства и инициа-лизационные данные для устройства. Используя эти данные, система может подготовить принтер и распечатать требуемые данные. После распечатки прикладная программа должна удалить контекст принтера с помощью функции DeleteDCQ (а не ReleaseDC()). ,

Информационный контекст

Информационный контекст фактически не является контекстом уст­ройства и служит только для получения информации о действительном контексте устройства. К примеру, для того, чтобы получить характери­стики принтера, программа создает информационный контекст, исполь­зуя для этого функцию CreatelQ), а затем из него выбирает требующиеся характеристики. Естественный вопрос: а для чего нужно использовать информационный контекст? Почему нельзя те же самые данные получить из действительно контекста? Дело в том, что этот тип контекста создается и работает намного быстрее, а также занимает меньше памяти по сравне­нию с действительным контекстом. После того, как надобность в инфор­мационном контексте миновала, программа должна удалить его с помо­щью функции DeleteDCQ.




Начало  Назад  Вперед



Книжный магазин