BitBlt рисует пустое изображение - PullRequest
0 голосов
/ 16 ноября 2010

Я использую MFC и пытаюсь нарисовать изображение на экране. У меня есть следующая функция OnDraw:

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 рисует черный прямоугольник. Кто-нибудь видит, что мне не хватает?

1 Ответ

1 голос
/ 16 ноября 2010

Я бы предположил, что проблема в том, что ваше изображение каким-то образом неверно.Потому что я проверил это, и он отлично работает.LoadBitmap возвращает HBITMAP, так что вы можете проверить это так:

HBITMAP hresult = m_Bitmap.LoadBitmap(IDB_WALL);
assert(hresult);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...