これは私のコードです。
ピクチャボックスをズームすることはできますが、ズームすることはできません。マウスホイールを回転させたときにマウスポイントにズームする方法は?
変数は次のとおりです。
private double m_dZoomscale = 1.0; //THIS IS THE ZOOM SCALE TO WHICH EACH OBJECT
//ARE ZOOMED IN THE CANVAS
public static double s_dScrollValue = .01;
//scale factor value for mouse scroll zooming
ペイントコードは次のとおりです。
private void m_Picturebox_Canvas_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.ScaleTransform((float)m_dZoomscale, (float)m_dZoomscale);
}
主なコードは次のとおりです。
protected override void OnMouseWheel(MouseEventArgs mea)
{
m_Picturebox_Canvas.Focus();
if (m_Picturebox_Canvas.Focused == true)
{
if (mea.Delta > 0)
{
ZoomInScroll();
}
else if (mea.Delta < 0)
{
ZoomOutScroll();
}
}
}
サブ機能は次のとおりです。
//FUNCTION FOR MOUSE SCROL ZOOM-IN
private void ZoomInScroll()
{
m_dZoomscale = m_dZoomscale + s_dScrollValue;
m_Picturebox_Canvas.Invalidate();
}
//FUNCTION FOR MOUSE SCROL ZOOM-IN
private void ZoomOutScroll()
{
m_dZoomscale = m_dZoomscale - s_dScrollValue;
m_Picturebox_Canvas.Invalidate();
}