Bonjour,

J'ai du mal à comprendre les fonctions proposées par wxMouseEvent pour effectuer un zoom à la molette (macro EVT_MOUSEWHEEL).

Je ne saisi pas le rôle des fonctions :
wxMouseEvent::GetWheelRotation
wxMouseEvent::GetWheelDelta

(
détails ici)

Si quelqu'un veux bien m'expliquer !


Voila mon code à titre d'exemple où je dessine sur une wxScrolledWindow (qui ne marche pas bien sur) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
oid
ImagePanel::OnMouseWheel(wxMouseEvent& event)
{
	int rotation = event.GetWheelRotation();
 
	wxClientDC dc(this);
	DoPrepareDC(dc);
	dc.Clear();
 
	if(rotation > 0)
	{// Zoom in.
		_zoomFactor += 0.1;
	}
	else
	{//Zoom out.
		_zoomFactor -= 0.1;
	}
	dc.SetUserScale(_zoomFactor, _zoomFactor);
	dc.DrawBitmap(_bitmap, 0, 0, false);
	}
	event.Skip();
}