Я использую MFC, и я пытаюсь нарисовать изображение на экране. У меня есть следующая функция OnDraw:BitBlt рисует пустое изображение
void CgraphicstestView::OnDraw(CDC* pDC)
{
CgraphicstestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
m_Bitmap.LoadBitmap(IDB_WALL); // m_Bitmap is a CBitmap member of CgraphicstestView
// IDB_WALL is a .png resource
CDC dcMemory;
dcMemory.CreateCompatibleDC(pDC);
dcMemory.SelectObject(&m_Bitmap);
pDC->BitBlt(10, 10, 32, 32, &dcMemory, 0, 0, SRCCOPY);
}
Это нарисовано на экране, но область назначения пуста. BitBlt работает, поскольку смена SRCCOPY на BLACKNESS рисует черный прямоугольник. Кто-нибудь видит, что мне не хватает?
Конечно, это утверждение не удалось. Теперь выясните, почему это неверно. Существуют ли какие-либо распространенные ошибки при размещении изображений в файлах .rc? Изображение отображается хорошо, когда я просматриваю его в представлении ресурса. – Max
@Max: Вы указываете, что IDB_WALL является ресурсом PNG. 'LoadBitmap' может загружать только файлы растрового изображения (BMP), хотя редактор ресурсов может отображать другие форматы. – casablanca
@casablanca: ... тьфу. Это должно было быть очевидно. +1 для указания этого. Спасибо за вашу помощь. – Max