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

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Янг Майкл Дж. -> "Visual С++ 6. Полное руководство: В 2 т.(том2)" -> 88

Visual С++ 6. Полное руководство: В 2 т.(том2) - Янг Майкл Дж.

Янг Майкл Дж. Visual С++ 6. Полное руководство: В 2 т.(том2) — Бином, 2006. — 530 c.
Скачать (прямая ссылка): vicualcc2006t2.djvu
Предыдущая << 1 .. 82 83 84 85 86 87 < 88 > 89 90 91 92 93 94 .. 173 >> Следующая

Примечание
Функция DisplayBitmap задает объекту контекста устройства для целевого устройства стандартный режим отображения мм_техт. Если объект использует другой режим отображения, то при копировании растровое изображение будет расширено или сжато.
Следующий фрагмент программы иллюстрирует, как функция DisplayBitmap может использоваться для отображения растрового изображения внутри окна представления с логическими координатами (0, 0).
void CProgView::OnDraw(CDC* pDC) {
DisplayBitmap (pDC, &m_Bitmap, 0, 0);
)
В этом примере задан объект m_Bitmap класса CBitmap в форме элемента класса представления CProgView, инициализированный как совместимый с экраном с помощью одного из описанных ранее методов. Программа BitDemo, приведенная в конце главы, демонстрирует альтернативные методы отображения растрового изображения в окне представления.
Кроме того, функцию DisplayBitmap можно использовать для печати растрового изображения, передав его в объект контекста устройства, соответствующего принтеру. В зависимости от конкретного принтера цвета растрового изображения могут быть заменены черно-белыми или оттенками серого цвета. Способы печати описаны в гл. 21.
Другие способы
использования растрового изображения
Инициализированный объект растрового изображения можно использовать в программах библиотеки MFC и для других целей (кроме отображения на устройстве соответствующего точечного рисунка). Например:
1. С помощью MFC-класса CBitmapButton создать специальный элемент управления типа кнопки помеченной растровым изображением, а не текстом.
2. Вызывая функцию CMenu: : SetMenuItemBitmap пометить команду меню специальным значком (временный объект класса CMenu, подключаемый к меню главной программы, можно получить, вызывая функцию CWnd: :GetMenu для объекта главного окна).
3. Вызывая функцию CMenu: :AppendMenu или другую функцию класса CMenu, сконструировать специальную метку меню и задать растровое изображение вместо текстовой метки.
4. Вызвав функцию CBrush: :CraetePatternBrash для создания кисти, как описано в гл. 19, заполнить области с помощью специального шаблона.
При выполнении любого из этих действий необходимо создать объект CBitmap, инициализируя его с использованием одного из методов, описанных в этой главе. Информация по любому из четырех способов использования растровых изображений приведена по классам или функциям-членам в следующих разделах справочной системы: Visual С++ Documentation, Reference, Microsoft Foundation Class Library and Templates, Microsoft Foundation Class Library, Class Library Reference.
Выполнение битовых операций
Класс CDC содержит три универсальные и эффективные функции для перемещения блоков графических данных: PatBlt, BitBlt и StrechBlt. Эти функции можно использовать при создании рисунков а также для копирования блоков графических данных и их модификации простыми или сложными способами (например, инвертированием цветов или зеркальным отражением изображения). Ранее в этой главе было показано, как использовать функцию PatBlt для рисования цветного фона в растровом изображении и функцию BitBlt для пересылки графических данных из растровых изображений в окно или другое устройство. Вообще эти функции можно применять для копирования графических данных (с одного места в другое) на отображающей поверхности одного отдельного устройства или для их копирования с одного устройства на другое, или для обмена данными между устройством и растровым изображением.
Совет
Функции битовых операций можно применять к объектам контекста устройства, связанным с экраном или к объектам памяти контекста устройства, совместимым с экраном. Однако они могут не поддерживаться некоторыми типами устройств, например, отдельными принтерами или плоттерами. Чтобы определить, поддерживает ли конкретное устройство функции битовых операций, МОЖНО передать значение RASTERCAPS В функцию CDC: :GetDeviceCaps для связанного с ним объекта контекста устройства. Информация, возвращаемая функцией GetDeviceCaps, описана в документации по данной функции.
Функция PatBlt
Функция PatBlt класса CDC предназначена для закрашивания прямоугольной области с использованием текущей кисти. Описание текущей кисти приведено в гл. 19. В контексте битовых операций на текущую кисть обычно ссылаются как на текущий шаблон (pattern). (Область можно заполнить текущим шаблоном, вызывая
функцию CDC: :Fi.iiRec) . Функция PatBlt более универсальна и имеет следующий синтаксис.
BOOL PatBlt
(int х, int у, // логическая координата верхнего
// левого угла области заполнения;
int nWidth, int nHeight, // размеры области заполнения в
// логических единицах;
DWORD dwRop); // код растровой операции
Первые два параметра задают логические координаты левого верхнего угла закрашиваемой прямоугольной области, вторые — ширину и высоту этой области в логических единицах.
Примечание
Описание кода растровой операции при вызове функции битовой операции похоже на установку режима рисования (см. гл. 19). При этом режим рисования влияет на линии и внутреннюю область замкнутых фигур, созданных с использованием команд рисования, но не влияет на результаты рассмотренных далее битовых операций.
Предыдущая << 1 .. 82 83 84 85 86 87 < 88 > 89 90 91 92 93 94 .. 173 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100