VC6.0的MFC下,只能够显示bmp格式的位图,作为第三方的CPitureEX类,提供了显示gif、jpg等图片格式的图像,极大的方便了我们 的编程,在这里,感谢author。
在这里介绍实现图片的放大与缩小,主要是在CPictureEX::OPaint下修改。即用StrechBlt替换BitBlt
具体为:
void CPictureEx::OnPaint()
{
CPaintDC dc(this); // device context for painting
LONG nPaintWidth = m_PaintRect.right-m_PaintRect.left;
LONG nPaintHeight = m_PaintRect.bottom - m_PaintRect.top;
SIZE size = GetSize();
// ::BitBlt(dc.m_hDC, 0, 0, nPaintWidth, nPaintHeight,
// m_hMemDC, m_PaintRect.left, m_PaintRect.top, SRCCOPY);
::SetStretchBltMode(dc.m_hDC,COLORONCOLOR);
::StretchBlt(dc.m_hDC,0,0,(int)(size.cx*0.5),(int)(size.cy*0.5),m_hMemDC,0,0,size.cx,size.cy,SRCCOPY);