我正在使用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会绘制一个黑色矩形。有人看到我错过的东西吗?
答案 0 :(得分:1)
我不得不猜测问题是你的图像在某种程度上是无效的。因为我测试了它,它工作正常。 LoadBitmap返回一个HBITMAP,因此您可以像这样测试它:
HBITMAP hresult = m_Bitmap.LoadBitmap(IDB_WALL);
assert(hresult);