MFC中使用StretchBlt()缩小图片时容易出现失真(大量彩色纹理),这是需要在StretchBlt()之前
调用SetStretchBltMode(),设置成HALFTONE。而且要用局部变量的HDC,例如
正确
HDC hDC =
pPicCtrl->GetDC()->GetSafeHdc();
SetStretchBltMode(hDC,HALFTONE);
m_pQueryImage->StretchBlt(hDC, 0, 0, nWidth,
nHeight, SRCCOPY);
错误
SetStretchBltMode( pPicCtrl->GetDC()->GetSafeHdc() ,HALFTONE);
m_pQueryImage->StretchBlt( pPicCtrl->GetDC()->GetSafeHdc() ,
0, 0, nWidth, nHeight, SRCCOPY);