Scroll Box

Re: Scroll Box

Postby hmpaquito » Thu Sep 18, 2014 10:01 am

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.
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Scroll Box

Postby antolin » Fri Sep 19, 2014 6:28 pm

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í:

Code: Select all  Expand view
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...
antolin
 
Posts: 491
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Scroll Box

Postby cnavarro » Fri Sep 19, 2014 8:00 pm

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
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Scroll Box

Postby antolin » Sat Sep 20, 2014 7:33 pm

hmpaquito, para esconder o no el Scroll puedes intentar con SIF_DISABLENOSCROLL en SetInfoScroll(), probando:
Code: Select all  Expand view
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...
antolin
 
Posts: 491
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Scroll Box

Postby hmpaquito » Mon Sep 22, 2014 7:14 am

Muchas gracias antolín
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 103 guests