Растровое изображение является автономным графическим ресурсом, который используется как единое целое и содержит поразрядно описание изображения, которое выводится на экран без изменений. Растровые изображения описываются классом 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);