Como coloco un ScrollBar a un List?

Iniciado por Ch3ck, 20 Abril 2007, 23:59 PM

0 Miembros y 1 Visitante están viendo este tema.

Ch3ck

Pues, asi como dice la pregunta, por ejemplo cuando añado items a un list, pues si añado muchos aparece una barra para poder seguir observando hacia abajo o arriba, pero cuando agrego uno que es largo y sobrepasa el ancho del list pues no se ve completo y ademas no aparece una barra hacia lo ancho, como puedo solucionar ese problema?

Gracias por responder.  ::)

Sancho.Mazorka

Ingeniatela para adaptarlo a un List

Option Explicit
'Funciones para el manejo de las barras de desplazamiento
'en controloes que no dispones de la propiedad "ScrollBars"
'
'sBarFunciones.bas 2 de Mayo de 1.998 VB5
'Por Jose Montaner 'Satelite' casa2001@apdo.com

' Constantes de barra de desplazamiento
Public Enum eBar
Horizontal = 0
Vertical = 1
Automatico = 2
Ambas = 3
End Enum

Private Declare Function EnableScrollBar Lib "user32" _
(ByVal hwnd As Long, ByVal wSBflags As Long, ByVal wArrows As Long) As Long
Private Declare Function ShowScrollBar Lib "user32" _
(ByVal hwnd As Long, ByVal wBar As Long, ByVal bShow As Long) As Long


Public Sub sBarVisible(ByVal cntrl As Variant, ByVal barras As eBar, ByVal visible As Boolean)
'Muestra/Oculta barras de desplazamiento

'cntrl: Control que deseamos atacar
'barras: Indica que barras queremos mostrar/ocultar
'Visiable: True/False
Dim ret As Long

ret = ShowScrollBar(cntrl.hwnd, barras, visible)
End Sub
Public Sub sBarEnabled(ByVal cntrl As Variant, ByVal barras As eBar, ByVal enabled As Boolean)
'Habilita/Deshabilita

'cntrl: Control que deseamos atacar
'barras: Indica que barras queremos habilitar/deshabilitar
'Enabled: True/False
Dim ret As Long

ret = EnableScrollBar(cntrl.hwnd, barras, IIf(enabled, 0, &H3))
End Sub



Sancho.Mazorka    :¬¬
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html



~~

O mas simple:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Sub Form_Load()
Dim x As Integer
x = SendMessage(List1.hwnd, &H194, 200, ByVal 0&)
End Sub


Con eso le adaptas la barra horizontal, la vertical ya se pone sola  :P