Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Windows Overscroll deaktivieren (https://www.delphipraxis.net/189717-windows-overscroll-deaktivieren.html)

Jakson 12. Jul 2016 16:45

Windows Overscroll deaktivieren
 
Hallo zusammen,

seit Win 8.1 gibt es anscheinend wenn man in einer Liste mittels Touch Scrollt und am ende anlangt den Overscroll Effekt (Gesamtes Fenster verschiebt sich).
Siehe YouTube Video (Nicht von mir)

Ich hab eine Lösung schon gefunden allerdings deaktiviert die diesen Effekt global.
Reg Eintrag: HKEY_CURRENT_USER\Software\Microsoft\Wisp\Touch\ -> Bouncing = 0

Nach langem herum suchen hab ich eine Funktion gefunden die den Effekt in C# mit WPF deaktivieren kann:
MSDN OnManipulationBoundaryFeedback
Stackoverflow wpf-listbox-with-touch-inertia-pulls-down-entire-window

Das müsste doch mittels Interface oder Messages auch abzufangen sein nur weiß ich nicht wie.

Aja ich verwende noch Delphi 2010

Assarbad 6. Sep 2016 09:57

AW: Windows Overscroll deaktivieren
 
Es heißt übrigens Overpan, nicht Overscroll. Vielleicht kannst du den Thementitel selbst anpassen oder einen Mod bitten das zu tun?!

Dir geht es also nur um die aktuelle Anwendung?

Gibt es, wie auch den MSDN-Library durchsuchenBoundary Feedback Effekt selbst, scheinbar seit Windows 7. Habe das aber noch nie selbst gemacht, da ich nicht einmal ein Windowsgerät habe welches über Berührung bedient wird. Die Funktionen MSDN-Library durchsuchenBeginPanningFeedback, MSDN-Library durchsuchenUpdatePanningFeedback und MSDN-Library durchsuchenEndPanningFeedback zeichnen dafür verantwortlich.

Einerlei, wenn du auf MSDN-Library durchsuchenWM_GESTURE reagierst, solltest du aus dem LPARAM mit MSDN-Library durchsuchenGetGestureInfo die Gesture ID extrahieren können und auf MSDN-Library durchsuchenGID_PAN testen. Ich bin mir nicht sicher, aber ich würde vermuten wenn du behauptest, daß du die Nachricht selbst verarbeitet hast (0 zurückgeben bei einem Nicht-Dialogfenster), dürfte der Effekt schon deaktiviert sein.

Ansonsten mußt du versuchen zu fummeln indem du mit den obigen Funktionen versuchst den Effekt auszuschalten. Vielleicht funktioniert es aber auch mit MSDN-Library durchsuchenSetGestureConfig einfach GID_PAN für dein Fenster zu deaktivieren? Probier's mal aus und gib am besten hier im Thema Rückmeldung.

NB: für Windows 7 empfiehlt sich auch die Lektüre der Artikel MSDN-Library durchsuchenLegacy Support for Panning with Scroll Bars und MSDN-Library durchsuchenImproving the Single-Finger Panning Experience.

Zitat:

Zitat von Jakson (Beitrag 1342511)
Ich hab eine Lösung schon gefunden allerdings deaktiviert die diesen Effekt global.
Reg Eintrag: HKEY_CURRENT_USER\Software\Microsoft\Wisp\Touch\ -> Bouncing = 0

Normalerweise hätte ich erwartet zum globalen De/Aktivieren eine Einstellung über MSDN-Library durchsuchenSystemParametersInfo zu finden. Leider bin ich nicht fündig geworden.

Aviator 21. Okt 2016 12:03

AW: Windows Overscroll deaktivieren
 
Zitat:

Zitat von Jakson (Beitrag 1342511)
Ich hab eine Lösung schon gefunden allerdings deaktiviert die diesen Effekt global.
Reg Eintrag: HKEY_CURRENT_USER\Software\Microsoft\Wisp\Touch\ -> Bouncing = 0

You made my day. :thumb:

Habe mir gestern ein neues Ultrabook gegönnt (Acer Swift 7). Das Notebook hat ein Precision Touchpad. Und gerade in Delphi wurde beim Scrollen der Toolbox das Fenster komplett verschoben - trotz Maximiert Status. Extrem nervig.

Und ich wusste, dass ich hier mal so ein Thema gelesen hatte welches das Problem genau beschreibt. Und da isses. :-D

Für alle die das gleiche Problem haben, der Registry Eintrag funktioniert auch ohne Neustart des Betriebssystems.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz