首页 > 编程地带 > 解决位图失真-SetStretchBltMode

解决位图失真-SetStretchBltMode

2008年10月19日 发表评论 阅读评论

当用以下函数加载一张位图时,当窗口发生重绘更改大小时,位图将失真:

<br />BOOL CGraphicView::OnEraseBkgnd(CDC* pDC) <br />{<br />  // TODO: Add your message handler code here and/or call default<br />  CBitmap bitmap;<br />  bitmap.LoadBitmap(IDB_BITMAP2);<br /><br />  BITMAP bmp;<br />  bitmap.GetBitmap(&bmp);<br /><br />  CDC dcCompatible;<br />  dcCompatible.CreateCompatibleDC(pDC);<br /><br />  dcCompatible.SelectObject(&bitmap);<br /><br />  CRect rect;<br />  GetClientRect(&rect);<br />  pDC->SetStretchBltMode(COLORONCOLOR); //设置在指定设备内容中的伸展模式。解决失真问题。<br />    <br />  //pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,SRCCOPY);<br />  pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);<br /><br />  return TRUE;<br />}

转载请注明:woyigui's blog [http://www.woyigui.cn/]
本文标题:解决位图失真-SetStretchBltMode
本文地址:http://www.woyigui.cn/2008/10/19/VC-SetStretchBltMode/

分类: 编程地带 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
*