读书人

atl项目中StretchBlt操作失败解决思路

发布时间: 2013-07-09 09:50:48 作者: rapoo

atl项目中StretchBlt操作失败

在initDialog中


hBitmap = ::LoadBitmap(_AtlBaseModule.GetModuleInstance(), MAKEINTRESOURCE(IDB_BITMAP1));


这段代码在OnEraseBkgnd中

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);
ATL Bitmap
[解决办法]
问题是什么,报什么错
[解决办法]
看看StretchBlt调用的时候,各个参数的值是否有效,比如dc.m_hDC的值是否有效?

读书人网 >VC/MFC

热点推荐