リソースからダイアログまたは画面に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」と命名されたことを確信しています。
しかし、何も出力しません。
問題が何ですか?
EDIT:
変更後:コメントで指摘したように
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を選択する必要があります。また、BeginPaint()/ EndPaint()(またはMFCのCPaintDCを使用)を呼び出す代わりに、GetDC()を呼び出してWM_PAINTメッセージに応答して描画することはできません。 –
@ Constantine Georgiou私はあなたの提案を試みましたが、変更されたコードは上記のようですが、それでも何も出力されません。どうしたの? –