Antolín,
Mis mas sinceras felicitaciones por tu trabajo.... eres un genio de la investigacíon API Win32.
Quizá para mi tendría mas utilidad que el resize del thumb, el poder definir el ancho del scroll o incluso poder ocultarlo (hide). Estas dos cosas serían muy utiles para programas touch donde el scrollbar queda muy pequeñito o se quisiera ocultar.
Gracias por tu donación.
Scroll Box
Re: Scroll Box
Hola.
Me he dado cuenta de un pequeño detalle, con los scrolls dimensionados con SetScrollInfo(), es que cuando movemos el scroll con el thumb para saber su posición máxima me sirve el nuevo oVSCroll:nMax (que es el antiguo nMax + nPgStep), pero cuando movemos el Scroll con los demás controles hay que utilizar el nuevo nMax-nPgStep, es decir el antiguo nMax. Por lo que he añadido el data nMaxPos implementándolo así:
Ahora, cuando controlemos la posición del scroll, si lo movemos con el thumb habrá que compararlo con nMin y nMax, pero cuando lo movemos con los demás controles habrá que compara su posición con nMin y nMaxPos.
Un saludo.
Me he dado cuenta de un pequeño detalle, con los scrolls dimensionados con SetScrollInfo(), es que cuando movemos el scroll con el thumb para saber su posición máxima me sirve el nuevo oVSCroll:nMax (que es el antiguo nMax + nPgStep), pero cuando movemos el Scroll con los demás controles hay que utilizar el nuevo nMax-nPgStep, es decir el antiguo nMax. Por lo que he añadido el data nMaxPos implementándolo así:
Code: Select all | Expand
METHOD Default() CLASS TScrollBar
LOCAL hWnd := IF( ::lIsChild, ::oWnd:hWnd, ::hWnd )
LOCAL nFlag := IF( ::lIsChild, IF( ::lVertical, SB_VERT, SB_HORZ ), SB_CTL )
*
IF ::lThumbResize
SetInfoScroll( hWnd , ::nMin, ::nMin, ::nMax, ::nPgStep, nFlag, .T. )
::nMaxPos := ::nMax-::nPgStep
ELSE
::nMaxPos := 0
ENDIF
RETURN NIL
Ahora, cuando controlemos la posición del scroll, si lo movemos con el thumb habrá que compararlo con nMin y nMax, pero cuando lo movemos con los demás controles habrá que compara su posición con nMin y nMaxPos.
Un saludo.
Peaaaaaso de foro...
FWH 2007 - xHarbour - BCC55
FWH 2007 - xHarbour - BCC55
Re: Scroll Box
Gracias Antolin
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Re: Scroll Box
hmpaquito, para esconder o no el Scroll puedes intentar con SIF_DISABLENOSCROLL en SetInfoScroll(), probando:
En cuanto a la anchura del Scroll, no sabría como hacerlo. Yo lo he solucionado NO definiendo mi control con estilo WS_VSCROLL, sino creando uno propio con @y,x SCROLL oVSCroll ..... SIZE nWidth,nHeight VERTICAL y así lo controlo yo. Lo quito y lo pongo cuando creo necesario. Lo quito destruyéndolo oVSCroll:End(); oVSCroll := NIL y lo repongo volviéndolo a definir. Va muy bien y le puedo dar el tamaño que mejor me va en cada circunstancia.
Saludos
Code: Select all | Expand
si.fMask = SIF_ALL+ SIF_DISABLENOSCROLL
En cuanto a la anchura del Scroll, no sabría como hacerlo. Yo lo he solucionado NO definiendo mi control con estilo WS_VSCROLL, sino creando uno propio con @y,x SCROLL oVSCroll ..... SIZE nWidth,nHeight VERTICAL y así lo controlo yo. Lo quito y lo pongo cuando creo necesario. Lo quito destruyéndolo oVSCroll:End(); oVSCroll := NIL y lo repongo volviéndolo a definir. Va muy bien y le puedo dar el tamaño que mejor me va en cada circunstancia.
Saludos
Peaaaaaso de foro...
FWH 2007 - xHarbour - BCC55
FWH 2007 - xHarbour - BCC55