关于在view里贴图的问题,高手帮忙,当天结贴
需求:
1,要求在单个ChileView里显示一副图片,不论怎么缩放窗口始终保持图像等比缩放。
2,在图片旁边得空余处填充黑色。
现状OnDraw(CDC *pDC):
1,已经得到窗口的大小clientRect和位图的填充区域bitmapRect,
2, 现行代码如下:
CDC memDC1, memDC2;
int nSavememDC = pDC->SaveDC();
memDC1.CreateCompatibleDC(pDC);
memDC2.CreateCompatibleDC(pDC);
// 创建一副黑色的图片
CBitmap * pBitmapBK = new CBitmap();
pBitmapBK->CreateCompatibleBitmap(pDC,clientRect.Width(), clientRect.Height());
CBitmap* pBitmap = pDoc->m_pDib->GetBitmap();
memDC1.SelectObject(pBitmap);
memDC2.SelectObject(pBitmapBK);
//memDC1.SetStretchBltMode(HALFTONE);
memDC2.SetStretchBltMode(HALFTONE);
//pDC->SetStretchBltMode(HALFTONE);
// 把目标图片画在memDC2上
memDC2.StretchBlt(bitmapRect.left, bitmapRect.top, bitmapRect.Width(), bitmapRect.Height(),
&memDC1,0, 0, w, h, SRCCOPY);
// 把已经贴好黑色图片和目标图片的menDC2贴到pDC上
pDC->BitBlt(0, 0, clientRect.Width(), clientRect.Height(), &memDC2, 0, 0, SRCCOPY);
问题:
1,在Win2000上运行正常,在win98上目标图片旁边的黑色部分画屏(杂乱的彩色)
请大家帮帮小弟的忙,如果有其他 解决方案也行