atl项目中StretchBlt操作失败
在initDialog中
hBitmap = ::LoadBitmap(_AtlBaseModule.GetModuleInstance(), MAKEINTRESOURCE(IDB_BITMAP1));
这段代码在OnEraseBkgnd中
ATL Bitmap
BOOL CVideoDlg::OnEraseBkgnd( CDCHandle dc )
HDC memHdc;
memHdc = ::CreateCompatibleDC(dc.m_hDC);
HBITMAP hOldBitmap = (HBITMAP)::SelectObject(memHdc, hBitmap);
BITMAP bm;
m_bitmap.GetBitmap(&bm);
// CRgn rgn;
// CRect rect;
// GetDlgItem(IDC_PROGRESS).GetWindowRect(&rect);
// rgn.CreateRectRgnIndirect(rect);
// HDC hdc = GetDCEx(rgn.m_hRgn,DCX_PARENTCLIP);
StretchBlt(dc.m_hDC, 0, 0, rc.Width(), bm.bmHeight,
memHdc, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);
[解决办法]
问题是什么,报什么错
[解决办法]
看看StretchBlt调用的时候,各个参数的值是否有效,比如dc.m_hDC的值是否有效?