andyglezl wrote:
I thought putting: SCROLLSTEP SET TO 100
would be a difference in advancing, but advancing the same
that at 10?
How it works?
Yes,
SET SCROLLSTEP TO only works with the messages: SB_LINEUP, SB_LINEDOWN, SB_LINERIGHT and SB_LINELEFT.
It can simulate with the keyboard as:
Code: Select all
#include "hmg.ch"
Function Main
SET SCROLLSTEP TO 10
DEFINE WINDOW Win_1 ;
ROW 0 ;
COL 0 ;
WIDTH 400 ;
HEIGHT 400 ;
TITLE 'HMG Panel Window Demo' ;
WINDOWTYPE MAIN
#define WM_VSCROLL 277
#define SB_VERT 1
#define SB_PAGEUP 2
#define SB_PAGEDOWN 3
// ON KEY PRIOR OF Win_1 ACTION SendMessage ( GetFormHandle("Win_2") , WM_VSCROLL , SB_PAGEUP , 0 )
// ON KEY NEXT OF Win_1 ACTION SendMessage ( GetFormHandle("Win_2") , WM_VSCROLL , SB_PAGEDOWN , 0 )
DEFINE WINDOW Win_2 ;
ROW 30 ;
COL 30 ;
WIDTH 300 ;
HEIGHT 200 ;
VIRTUALWIDTH 400 ;
VIRTUALHEIGHT 400 ;
WINDOWTYPE PANEL
DEFINE LABEL LABEL_1
ROW 10
COL 10
VALUE 'Panel windows...'
WIDTH 300
END LABEL
DEFINE BUTTON BUTTON_1
ROW 40
COL 10
CAPTION 'Click Me!'
ACTION MsgInfo('Clicked!')
END BUTTON
DEFINE LABEL LABEL_2
ROW 90
COL 10
VALUE "Can do this!"
WIDTH 300
END LABEL
DEFINE TEXTBOX TEXT_1
ROW 120
COL 10
VALUE 'Test'
END TEXTBOX
DEFINE TEXTBOX TEXT_2
ROW 150
COL 10
VALUE 'Test'
END TEXTBOX
DEFINE TEXTBOX TEXT_3
ROW 180
COL 10
VALUE 'Test'
END TEXTBOX
DEFINE TEXTBOX TEXT_4
ROW 210
COL 10
VALUE 'Test'
END TEXTBOX
DEFINE TEXTBOX TEXT_5
ROW 240
COL 10
VALUE 'Test'
END TEXTBOX
END WINDOW
DEFINE BUTTON BUTTON_1
ROW 300
COL 10
WIDTH 200
CAPTION 'Click Me!'
ACTION MsgInfo('Clicked!')
END BUTTON
END WINDOW
NewStep := 100
NewStep := IF (NewStep < 20, 20, NewStep)
hWnd := GetFormHandle("Win_2")
ON KEY PRIOR OF Win_1 ACTION {|| SetScrollPos (hWnd, SB_VERT, GetScrollPos(hWnd, SB_VERT) - NewStep -20, .T.), SendMessage (hWnd, WM_VSCROLL , SB_PAGEUP, 0 )}
ON KEY NEXT OF Win_1 ACTION {|| SetScrollPos (hWnd, SB_VERT, GetScrollPos(hWnd, SB_VERT) + NewStep -20, .T.), SendMessage (hWnd, WM_VSCROLL , SB_PAGEDOWN , 0 )}
Win_1.Center
Activate Window Win_1
Return