public bool PreFilterMessage(ref Message m)
{
if (m.Msg == 522)
{
uint lparm = (uint)m.LParam;
uint heigh = lparm >> 16;
uint low = (UInt16)lparm;
Point F = new Point((int)low, (int)heigh);
//将屏幕坐标做换为窗体坐标
F = this.PointToClient(F);
if ((int)m.WParam > 0)//如果是向上滚 放大
{
this.s.SetZoom(0.1f);
float MoveX = (_hScroll + F.X) * 0.1f / (Zoom - 0.1f);
float MoveY =(_vScroll + F.Y)*0.1f/(Zoom -0.1f);
this._hScroll += MoveX;
this._vScroll += MoveY;
this.Invalidate();
}
if ((int)m.WParam < 0)//如果是向下滚 缩小
{
if (this.s.Zoom-0.1>=0.09)
{
this.s.SetZoom(-0.1f);
float MoveX = (_hScroll + F.X) * 0.1f / (Zoom + 0.1f);
float MoveY = (_vScroll + F.Y) * 0.1f / (Zoom + 0.1f);
this._hScroll -= MoveX;
this._vScroll -= MoveY;
this.Invalidate();
}
}
return true;
}
else
{
return false;
}
return false ;
}