000
22.09.2004, 15:23 Uhr
tronaccount
|
Hallo!
Ich entwickle z.Zt. eine MFC-Anwensung mit OpenGL-Einbindung und möchte meine 3D-Objekte gern zoomen.
Also habe ich die OnMouseWheel()-Funktion überschrieben mit folgendem Code:
C++: |
BOOL CMfc_basicView::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) {
//neuen Zoom errechnen zoom = zoom + zDelta*0.0001;
//Zoom ausführen mit korrektem Zentrum glTranslated( refVector[0], refVector[1], refVector[2]); glScaled(zoom, zoom,zoom); glTranslated( -refVector[0], -refVector[1], -refVector[2]);
//Fenster neu aufbauen Invalidate(FALSE);
return CView::OnMouseWheel(nFlags, zDelta, pt); }
|
Ich habe aber einen sehr seltsamen Effekt: Drehe ich das Mausrad in eine Richtung, zoomen die Objekte korrekt. Ändere ich die Drehrichtung des Rades, so dauert es ein paar Drehungen, bis der Zoom ebenfalls in die andere Richtung geht. Je öfter ich die Richtung wechsle, desto länger dauert die Verzögerung.
Fällt einem von Euch was dazu ein?
Danke und Gruß,
T. |