пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Робота з растровими зображеннями у MFC. Особливості забезпечення виведення зображень на екран. Приклади.

Растровое изображение является автономным графическим ресурсом, который используется как единое целое и содержит поразрядно описание изображения, которое выводится на экран без изменений. Растровые изображения описываются классом CBitmap. Растровое изображение можно создать в редакторе ресурсов Visual C ++ или скопировать через буфер памяти с любого графического редактора в ре-дактор ресурсов. Загрузка изображения:

BOOL CBitmap :: LoadBitmap (LPCSTR lpszBitmapName);

BOOL CBitmap :: LoadBitmap (UINT idBitmap); :

CBitmap bmp;

bmp.LoadBitmap (IDB_BITMAP1);

Пример обработчика левой клавиши мыши с выводом растрового изображения в главное окно программы

void CMain :: OnLButtonDown (UINT flags, CPoint Loc)

[CClientDC dc (this);

 CDC memDC;

 memDC.CreateCompatibleDC (& dc);

 memDC.SelectObject (& bmp1);

 dc.BitBlt (Loc.x, Loc.y, 48,48, & memDC, 0,0, SRCCOPY); ]

Можно увидеть, что в приведенном обработчике сначала получается контекст dc устройства окна. Далее объявляется промежуточный контекст области памяти memDC, что с помощью функции CreateCompatibleDC () устанавливается совместимым с контекстом главного окна. Следующей строкой изображения bmp1 избирается функцией SelectObject () в контекст области памяти. Наконец, содержание контекста области памяти копируется в функции BitBlt () к контексту главного окна программы относительно позиции, заданной координатами мыши.

CBitmap не содержит в себе информации о размерах изображения, необходимые при выводе. Можно использовать особенность, подобной CBitmap структуры BITMAP - использовать такую программную последовательность:

BITMAP bm; // Объявление объекта структуры BITMAP

bmp1.GetBitmap (& bm); // Передача параметров с bmp1 в bm

В дальнейшем при выводе изображения на экран можно использовать ширину и высоту, полученные из структуры BITMAP:

dc.BitBlt (Loc.x, Loc.y, bm.bmWidth, bm.bmHeight, & mdc, 0,0, SRCCOPY);


22.06.2015; 09:38
хиты: 245
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь