Cтраница 1
![]() |
Логические координаты в сравнении с координатами устройства ( документ прокручен вниз на 75 пикселей. [1] |
Объект контекста устройства, передаваемый функции onDraw, уже имеет правильно установленное начало области просмотра, скорректированное для прокрученного рисунка. При создании собственного объекта контекста устройства его необходимо передать функции OnPrepareDC для коррекции начала области просмотра. [2]
Объект контекста устройства передается в функцию CScrollView: : OnPrepareDC для коррекции начала области просмотра прокрученного документа. [3]
Поскольку объект контекста устройства связан с принтером, результат, сгенерированный функцией OnDraw, автоматически передается принтеру ( или в окно предварительного просмотра печати), а не в окно представления. [4]
Создает объект контекста устройства Client DC и вызывает функцию CScrollview: : OnPrepareDC, чтобы скорректировать объект для текущей позиции прокрутки рисунка. [5]
Создание объекта контекста устройства и выбор в нем объекта шрифта. [6]
Затем создается объект контекста устройства памяти и выбирается новое растровое изображение. Вызывается функция BitBlt класса CDC для того, чтобы скопировать все содержимое окна представления в растровое изображение. [7]
![]() |
Инструменты рисования. [8] |
При первичном создании объект контекста устройства содержит заданные по умолчанию перо и кисть. Кисть заливает внутреннюю область фигуры с замкнутым контуром непрозрачным белым цветом. Для каждого из этих инструментов в табл. 19.1 приведены функции рисования, на которые влияет выбор инструмента, и указан выбранный по умолчанию идентификатор инструмента. В таблице приведены только функции рисования, рассмотренные в этой главе. [9]
![]() |
Основные атрибуты рисования. [10] |
При первичном создании объект контекста устройства имеет набор стандартных атрибутов, определяющих работу функций рисования. Класс CDC содержит функции для изменения этих атрибутов, а также получения их текущих значений. В табл. 19.4 приведены функции и атрибуты рисования, наиболее подходящие для средств, рассмотренных в данной главе. [11]
Функция DoPreparePrinting создает объект контекста устройства, связанный с принтером. Если документ печатается, то DoPreparePrinting отображает обычное диалоговое окно Print, позволяющее выбрать определенный принтер и установить несколько опций печати. Затем функция создает объект контекста устройства для выбранного принтера и задает для него выбранные установки. Однако при предварительном просмотре документа функция DoPreparePrinting создает объект контекста устройства для текущего стандартного принтера Windows, а затем присваивает стандартные установки принтера, не отображая диалоговое окно Print. Если объект контекста устройства связан с принтером, он дополнительно сохраняет установки принтера при сохранении атрибутов и инструментов рисования, описанных в предыдущих главах. [12]
Функция DisplayBitmap задает объекту контекста устройства для целевого устройства стандартный режим отображения MMJTEXT. Если объект использует другой режим отображения, то при копировании растровое изображение будет расширено или сжато. [13]
Сначала функция DisplayBitmap создает объект контекста устройства, совместимый с экраном, и передает растровое изображение внутрь этого объекта, поэтому он может иметь доступ к содержимому растрового изображения. Затем она вызывает функцию GetObject класса CGdiObject, заполняющую элементы структуры BITMAP информацией растрового изображения. Функция DisplayBitmap получает размер растрового изображения из переменных bmWidth и bmHeight этой структуры. Затем она вызывает функцию BitBlt класса CDC, перемещающую графические данные, содержащиеся в растровом изображении, прямо на целевое устройство. [14]
Далее функция OnOptionsFont создает объект контекста устройства, связанный с окном представления, выбирает в нем предварительно инициализированный объект шрифта и вызывает функцию CDC: : GetTextMetrics для получения информации о шрифте, фактически использующемся для отображения текста в окне. [15]