機能の使用
OnEraseBkgnd(CDC* pDC)
CDialog 派生クラスで、画面いっぱいに表示される背景画像を記述します。
次に、OnPaint 内に、1 回だけ実行される次のコードがあります (初めて OnPaint が呼び出されます)。
GetInfoBarRect(&m_InfoBarRect);
m_InfoBarBGBitmap.CreateCompatibleBitmap(&dc, m_InfoBarRect.Width(), m_InfoBarRect.Height() );
bdc.CreateCompatibleDC(&dc);
pOldBitmap = bdc.SelectObject(&m_InfoBarBGBitmap);
bdc.BitBlt (m_InfoBarRect.left, m_InfoBarRect.top, m_InfoBarRect.Width(),m_InfoBarRect.Height(), &dc, 0, 0, SRCCOPY);
CImage image;
image.Attach(m_InfoBarBGBitmap);
image.Save(_T("C:\\test.bmp"), Gdiplus::ImageFormatBMP);
bdc.SelectObject(pOldBitmap);
bdc.DeleteDC();
上記のコードは、画面の m_InfoBarRect 部分をメモリ CBitmap にコピーします。
背景画像の一部を取得する代わりに、正しい寸法の空白の塗りつぶされた長方形のみを取得します。
私のコードに何か問題がありますか?