void CMyDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting //部分过程省略.....

m_bitmap.Draw(dc,x,y,8,8);//在屏幕上画一个8 * 8的小方块(CImage m_bitmap) 
}//鼠标滚轮的响应
BOOL CMyDlg::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值 if(nFlags & MK_CONTROL) 
{        //缩放 
if(zDelta>0) 

//如何在这里实现方块的放大 


else 

//这里缩小 

} return CDialog::OnMouseWheel(nFlags, zDelta, pt);
}

解决方案 »

  1.   

    把8和8设为变量,往上就递增,往下就递减,还是用m_bitmap.Draw。你也可以用bitblt.
      

  2.   

    BOOL StretchBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop );
      

  3.   

    把 m_bitmap.Draw(dc,x,y,8,8);中的8用变量代替,然后在鼠标滚轮响应函数里,改变变量的值,然后用invalidate(true)进行重绘,就可以了。
      

  4.   

    对,用StretchBlt最好!还有,8,8肯定要用变量代替,在鼠标滚动的时候改变,然后重画!