0
我正在使用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 2010-11-16 02:23:35
@Max:你提到IDB_WALL是一個PNG資源。 LoadBitmap'只能加載位圖(BMP)文件,即使資源編輯器可能能夠顯示其他格式。 – casablanca 2010-11-16 02:47:13
@casablanca:...呃。這應該是顯而易見的。 +1指出。謝謝你的幫助。 – Max 2010-11-16 03:47:19