Newsgroup: it.comp.lang.visual-basic
Titolo: Scrollbar in listbox

Ciao a tutti!!!
vorrei sapere come posso aggiungere una scroll bar orizzontale a una
listbox!!!!
Ho dei dati inseriti nella listbox che superano orizzontalmente la lunghezza
del controllo e di conseguenza vengono visualizzate solo le lettere
iniziali......
Aiutatemi per favore!!!

 listbox!!!!
Ecco il codice di un form di esempio, fai un bel copia-incolla su un form
nuovo.
Option Explicit
'-----------------------------------------------------------
'
' Esempio di come aggiungere la scrollbar orizzontale
' a una listbox
'
' [FAQ] it.comp.lang.visual-basic
'
'-----------------------------------------------------------
' Autore: Fabio Zanetta (Zanna)
'-----------------------------------------------------------
'
' (1) Copiare il seguente codice in un form vuoto.
' (2) Aggiungere una Listbox List1
'-----------------------------------------------------------
Private Const GWL_STYLE = (-16)
Private Const WS_HSCROLL = &H100000
Private Const SM_CXVSCROLL = 2&
Private Const LB_SETHORIZONTALEXTENT = &H194
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA"
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA"
(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As
Long) As Long
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 s As String
    Dim i As Long
    Dim wl As Long
    Dim ScrollWidth As Long
    ' add scrollbar (before you add items)
    wl = GetWindowLong(List1.hwnd, GWL_STYLE)
    Call SetWindowLong(List1.hwnd, GWL_STYLE, wl Or WS_HSCROLL)
    ' add 100 random strings items
    List1.Clear
    For i = 1 To 100
        s = i & " " & String$(Rnd * i, (i Mod 25) + 64)
        ' compute the max scrollable width
        If ScrollWidth < TextWidth(s) Then ScrollWidth = TextWidth(s)
        Call List1.AddItem(s)
    Next i
    ' compute ScrollWidth in pixel and add the width of vert. scrollbar
    ScrollWidth = ScaleX(ScrollWidth, ScaleMode, vbPixels) +
GetSystemMetrics(SM_CXVSCROLL)
    ' set the scrollable width
    Call SendMessage(List1.hwnd, LB_SETHORIZONTALEXTENT, ScrollWidth, 0&)
End Sub
Ciao

 iniziali...
Inserendo "Listbox scrollbar" in msdn mi è subito apparso:
HOWTO: Add a Horizontal Scroll Bar to a Visual Basic ListBox
Q192184
ciao
ugo

 Q192184
Ma tu guarda cosa si trova sull'MSDN :P
Mi vedo costretto a rettificare (semplificare piů che altro) :(
Option Explicit
'-----------------------------------------------------------
'
' Esempio di come aggiungere la scrollbar orizzontale
' a una listbox
'
' [FAQ] it.comp.lang.visual-basic
'
'-----------------------------------------------------------
' Autore: Fabio Zanetta (Zanna)
'-----------------------------------------------------------
'
' (1) Copiare il seguente codice in un form vuoto.
' (2) Aggiungere una Listbox List1
'-----------------------------------------------------------
Private Const SM_CXVSCROLL = 2&
Private Const LB_SETHORIZONTALEXTENT = &H194
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As
Long) As Long
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 s As String
    Dim i As Long
    Dim wl As Long
    Dim ScrollWidth As Long
    ' add 100 random strings items


 Mi vedo costretto a rettificare (semplificare piů che altro) :(
potevi ben premere f1 :)))
j.hlp

 potevi ben premere f1 :)))
A mia discolpa vorrei dire che io ci ero arrivato da solo :) usando qualcosa
che dovrebbe essere acceso di default per i programmatori...
Ciao

 che dovrebbe essere acceso di default per i programmatori...
il cervello ?
C:\>brain
"brain" non è riconosciuto come comando interno o esterno,
 un programma eseguibile o un file batch.
C:\> :)
C:\>

 ha scritto nel messaggio
news:9o04op$a38em$1...@ID-51318.news.dfncis.de...

Public Man_Create()
Set brain = Nothing
End Sub
:)

 End Sub
public sub woman_create()
    dim wBrain as new mBrain
    set wBrain = while 1 <> 0, vblanguage.add
end sub

 ha scritto nel messaggio
news:9o0h53$a580p$1...@ID-51318.news.dfncis.de...


Scusatemi ma ho provato a inserire il codice ma mi da errore!!!!!
eppure la listbox corrisponde......mhh........stranissimo!

 eppure la listbox corrisponde......mhh........stranissimo!
Non sarebbe male se:
(1) rispondessi al nodo giusto :)
(2) ci dicessi dove ti dà errore (boh, è praticamente impossibile...)
Ciao
-- SiDB Engine -------------------------------------------
 
http://space.virgilio.it/zntf...@tin.it/sidb/sidb.htm
----------------------------------------------------------

 ha scritto nel messaggio
news:9o0h53$a580p$1...@ID-51318.news.dfncis.de...

ROTFL
Stavo mangiando... quasi soffocato...   :DDDD
ciao
ugo


Beh, così a occhio va in loop sulla
public sub woman_create()
    dim wBrain as new mBrain
    set wBrain = while 1 <> 0, vblanguage.add
end sub
e esaurisce lo stack...   :PPPP
ciao
ugo