Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Ch3ck en 20 Abril 2007, 23:59 pm



Título: Como coloco un ScrollBar a un List?
Publicado por: Ch3ck en 20 Abril 2007, 23:59 pm
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.  ::)


Título: Re: Como coloco un ScrollBar a un List?
Publicado por: Sancho.Mazorka en 21 Abril 2007, 00:29 am
Ingeniatela para adaptarlo a un List

Código:
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    :¬¬


Título: Re: Como coloco un ScrollBar a un List?
Publicado por: ~~ en 21 Abril 2007, 12:07 pm
O mas simple:

Código:
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