Hab nun den halben Nachmittag damit verbracht herauszufinden wie ich solch eine Scrollbar einbaue und diese dynamisch an die Gesamthöhe anpasse. Muss man erstmal drauf kommen, dass _GUIScrollBars_Init die Gesamthöhe gerne noch durch 16 geteilt haben möchte. In der Hilfe stand dazu jedenfalls nichts. Nun gut soweit funktioniert meine Scrollbar nun, aber ich bräuchte noch einen Tipp wie man erreicht, dass das Fenster auch per Mausrad gescrollt werden kann. Derzeit funktioniert das bei mir nur durch klick auf die Leiste selbst oder die beiden hoch/runter Buttons.
Fenster mit vertikaler Scrollbar
-
- [ gelöst ]
-
misterspeed -
13. März 2011 um 21:50 -
Geschlossen -
Erledigt
-
-
Hallo misterspeed,
schau dir http://www.autoitscript.com/forum/topic/11…post__p__795504 von Melba23 an, ich glaube er hat in seiner UDF Scrollradunterstütung,
mfg autoBert
-
Da müh ich mich so ab mit rechnen und dann gibts da so ne schöne UDF die den Unsinn selbst erledigt
Hab nun aber trotzdem nur die Mousewheel Funktion aus der UDF gemoppst und den Rest belassen.Da mir die Mousewheel Funktion aus der UDF zu langsam war habe ich ausserdem noch eine kleine Modifikation vorgenommen wodurch nun 7 Zeilen anstatt einer gescrollt werden.
[autoit]
Wer das ganze auch bei sich einbauen will ohne die komplette UDF zu includen:
[/autoit][autoit][/autoit][autoit]
#include <SendMessage.au3>; hier dann natürlich noch sämtlichen anderen includes und eure funktionierende Scrollbar
[/autoit][autoit][/autoit][autoit]
; Danach noch die Mousewheel Funktion registrierenGUIRegisterMsg($WM_MOUSEWHEEL, "_Scrollbars_WM_MOUSEWHEEL")
[/autoit][autoit][/autoit][autoit][/autoit][autoit]; #INTERNAL_USE_ONLY#============================================================================================================
[/autoit][autoit][/autoit][autoit]
; Name...........: _Scrollbars_WM_MOUSEWHEEL
; Description ...: GUIRegisterMsg procedure for vertical mouse wheel scroll
; Syntax ........: _Scrollbars_WM_MOUSEWHEEL($hWnd, $iMsg, $wParam, $lParam)
; Return values .: None
; Author ........: Based on code from MrCreator & Malkey
; Remarks .......: This function is used internally by _Scrollbars_Generate
; ===============================================================================================================================
Func _Scrollbars_WM_MOUSEWHEEL($hWnd, $iMsg, $wParam, $lParam)#forceref $hWnd, $iMsg, $lParam
[/autoit][autoit][/autoit][autoit]
Local $iDirn, $iDelta = BitShift($wParam, 16) ; Mouse wheel movementIf BitAND($wParam, 0x0000FFFF) Then ; If Ctrl or Shft pressed move Horz scrollbar
[/autoit][autoit][/autoit][autoit]
$iDirn = $SB_LINERIGHT
If $iDelta > 0 Then $iDirn = $SB_LINELEFT
For $i = 1 To 7
_SendMessage($hWnd, $WM_HSCROLL, $iDirn)
Next
Else ; Move Vert scrollbar
$iDirn = $SB_LINEDOWN
If $iDelta > 0 Then $iDirn = $SB_LINEUP
for $i = 1 to 7 ; Schleife regelt die Scroll Geschwindigkeit, je mehr Durchläufe desto schneller
_SendMessage($hWnd, $WM_VSCROLL, $iDirn)
NextEndIf
[/autoit][autoit][/autoit][autoit]Return $GUI_RUNDEFMSG
[/autoit][autoit][/autoit][autoit]EndFunc ;==>_Scrollbars_WM_MOUSEWHEEL
[/autoit]