Карабли в моей гавани Не взлетим так поплаваем Стрелки ровно на два часа назад ............... Земфира
Создаем проект. Запускайте VC и MFC AppWizard. Дайте имя проекту TestBmp, в первом шаге поставьте Single Document и нажимайте Finish.
Теперь нам нужно импортировать в ресурсы картинку. В проекте, который сопровождает этот шаг есть картинка, но Вы можете вставить и свою. Только в таком случае не напутайте с размерами. Кстати картинка это фотография карьера, на котором добывают серебро. Внимание Картинка должна быть в 256 цветах иначе вы получите сообщение об ошибке.
Переключаемся на вкладку Resource, нажимаем правую кнопку мыши и выбираем пункт меню Import. В типе файлов установите Все файлы (*.*) и найдите картинку. Если все нормально, то будет так.
Как известно вся прорисовка производится в функции OnDraw класса вида (CTestBMPView). Нам туда. Вот весь код.
///////////////////////////////////////////////////////////////////////////// // CTestBMPView drawing void CTestBMPView::OnDraw(CDC* pDC) { CTestBMPDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CDC dcTemp; CBitmap cb; cb.LoadBitmap(IDB_BITMAP1); dcTemp.CreateCompatibleDC(pDC); dcTemp.SelectObject(cb); pDC->BitBlt(0,0,200,200,&dcTemp,0,0,SRCCOPY); }
Итак, мы создали экземпляр класса CBitmap и прочитали в него картинку LoadBitmap передав идентификатор из ресурсов. Так же мы создали экземпляр класса контекста устройства. Создали аналог существующему CreateCompatibleDC и поместили туда картнику SelectObject и вывели её на экран функцией BitBlt, которая как раз для этого предназначена. Эта функция копирует битовую карту в контекст устройства. Вот она какая.
BOOL BitBlt( int x, X верхнего левого угла int y, Y верхнего левого угла int nWidth, ширина int nHeight, высота CDC* pSrcDC, указатель на обьект CDC из которого копируетбся битовая карта int xSrc, X верхнего левого угола капируемой карты int ySrc, Y верхнего левого угола капируемой карты DWORD dwRop Выполняемая растрования операция );
Указанный мной параметр просто копирует SRCCOPY, а их 15 :-) С инвертированием и логическими операциями типа OR или AND и всякими там прибамбасами. Это мне напоминает одну песню, когда-то существовавшей группы Мальчишник. Вот эти слова из песни - и на голове я имел её тоже. :-) Как раз подходят.
Вы можете запустить программу на выполнение. Картинка будет на экране. Вот только в предварительном просмотре вы её не увидите. Все просто. MFC не умеет выводить картинки на печать .....