0
我想將BMP圖像輸出到資源對話框或屏幕上。MFC - 無法從資源輸出BMP圖像
下面的代碼:
void CMainDlg::OnPaint()
{
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
CDC *pDC;
pDC = this->GetDC();
HDC hDC = pDC->m_hDC;
HDC hmemdc = CreateCompatibleDC(hDC);
BITMAP BitMap;
bitmap.GetBitmap(&BitMap);
BitBlt(hDC,0,0,BitMap.bmWidth,BitMap.bmHeight,hmemdc,0,0,SRCCOPY);
DeleteDC(hmemdc);
DeleteObject(bitmap);
}
我相信,BMP圖像文件導入資源,並命名其ID「IDB_BITMAP1」。
但它不輸出任何東西。
有什麼問題?
編輯:
修改後:
void CMainDlg::OnPaint()
{
CBitmap bitmap;
bitmap.LoadBitmap(IDB_COVER);
CPaintDC dc(this);
HDC hDC = dc.m_hDC;
HDC hmemdc = CreateCompatibleDC(hDC);
SelectObject(hmemdc,&bitmap);
BITMAP BitMap;
bitmap.GetBitmap(&BitMap);
BitBlt(hDC,0,0,BitMap.bmWidth,BitMap.bmHeight,hmemdc,0,0,SRCCOPY);
DeleteDC(hmemdc);
DeleteObject(bitmap);
}
基本的GDI知識。您需要在mem-dc中選擇bmp,並且您可能不會調用GetDC()進行繪製(以響應WM_PAINT消息),而是調用BeginPaint()/ EndPaint()(或在MFC中使用CPaintDC)。 –
@Constantine Georgiou我曾嘗試過您的建議,修改過的代碼就像上面那樣,但它仍然不會輸出任何內容。它出什麼問題了? –