Sobald die Windows-Zoomgesten gestartet werden, ändert sich die Position des Mittelpunkts in der gleichen Geste für nachfolgende GID_ZOOM-Nachrichten. Ich habe keinen Touchscreen, aber ich habe versucht, die Zoom-Geste zu simulieren, und es gibt mir den gleichen Mittelpunkt, ob ich den Mittelpunkt in GF_BEGIN oder GF_END erhalte, aber ich schaute auf Windows-Probe hier Sample. Sie werden wieder die Berechnung der Mitte durch den Durchschnitt von 2 ptsLocation nehmen (s),Warum ändert sich der Mittelpunkt von GID_ZOOM?
// We read here the second point of the gesture. This is middle point between
// fingers in this new position.
_ptSecond.x = gi.ptsLocation.x;
_ptSecond.y = gi.ptsLocation.y;
ScreenToClient(hWnd,&_ptSecond);
// We have to calculate zoom center point
ptZoomCenter.x = (_ptFirst.x + _ptSecond.x)/2;
ptZoomCenter.y = (_ptFirst.y + _ptSecond.y)/2;
aber ich kann nicht, warum würde plsLocation Änderung für die gleiche Geste das heißt, bevor wir GF_END Nachricht erhalten? Kannst du mir bitte helfen ? TIA
Der Autor des Codes ** entschied **, den Zoom-Mittelpunkt an jedem Eingang zu aktualisieren. Sie sind frei, dies zu tun. Sie hätten sich entscheiden können, das Zentrum einmal zu berechnen und es während der ganzen Geste zu behalten. Beide Implementierungen zeigen ein geringfügig anderes Verhalten. Diese Frage ist wie die Frage, warum Autos in verschiedenen Farben verkauft werden. – IInspectable
und was ist das etwas anderes Verhalten? – PrashantKumarNirmal
Das Zentrum bewegt sich während der gesamten Geste oder bleibt in einer festen (Bildschirm-) Position. – IInspectable