Results 1 to 7 of 7

Thread: csmjno

  1. #1

    Thread Starter
    Fanatic Member joltremari's Avatar
    Join Date
    Sep 2000
    Location
    Mississippi
    Posts
    674

    Scrolling

    How can i scroll 3 list boxes(at the same time) with one scroll bar.

    Or can I?

    Thanks,

    JO


  2. #2
    Guest
    Is this what you want?

    Code:
    Private Sub List1_Click()
    List2.ListIndex = List1.ListIndex
    List3.ListIndex = List1.ListIndex
    End Sub
    
    Private Sub List2_Click()
    List1.ListIndex = List2.ListIndex
    List3.ListIndex = List2.ListIndex
    End Sub
    
    Private Sub List3_Click()
    List1.ListIndex = List3.ListIndex
    List2.ListIndex = List3.ListIndex
    End Sub

  3. #3
    Guest
    Make sure the listboxes are an array of listboxes, then use this code in the _scroll event:

    Code:
        Dim T As Integer
        
        For T = 0 To TheListBox.Count - 1
            If Index <> T Then TheListBox(T).TopIndex = TheListBox(Index).TopIndex
        Next T
    Enjoy!

  4. #4

    Thread Starter
    Fanatic Member joltremari's Avatar
    Join Date
    Sep 2000
    Location
    Mississippi
    Posts
    674
    How do I make the 3 existing list boxes an array?

  5. #5
    Frenzied Member Jop's Avatar
    Join Date
    Mar 2000
    Location
    Amsterdam, the Netherlands
    Posts
    1,986
    Delete the last 2, then copy the first one, and past it on the form, VB will then ask if you want to create an array, click yes. it's that simple!
    Jop - validweb.nl

    Alcohol doesn't solve any problems, but then again, neither does milk.

  6. #6

    Thread Starter
    Fanatic Member joltremari's Avatar
    Join Date
    Sep 2000
    Location
    Mississippi
    Posts
    674
    Thank you much!!

    JO

  7. #7
    Frenzied Member Jop's Avatar
    Join Date
    Mar 2000
    Location
    Amsterdam, the Netherlands
    Posts
    1,986
    Oh, don't forget to draw a cool flat-scrollbar to your listboxes. replace List1 with the listbox you use.

    Code:
    Option Explicit
    
    '[begin of code]
    'Author: KDP team
    'Origin:
    'Purpose: Draw flat scrollbars on the form
    'Version: VB5+
    Const WS_VSCROLL = &H200000
    Const WS_HSCROLL = &H100000
    Const GWL_STYLE = (-16)
    
    Const WSB_PROP_CYVSCROLL = &H1
    Const WSB_PROP_CXHSCROLL = &H2
    Const WSB_PROP_CYHSCROLL = &H4
    Const WSB_PROP_CXVSCROLL = &H8
    Const WSB_PROP_CXHTHUMB = &H10
    Const WSB_PROP_CYVTHUMB = &H20
    Const WSB_PROP_VBKGCOLOR = &H40
    Const WSB_PROP_HBKGCOLOR = &H80
    Const WSB_PROP_VSTYLE = &H100
    Const WSB_PROP_HSTYLE = &H200
    Const WSB_PROP_WINSTYLE = &H400
    Const WSB_PROP_PALETTE = &H800
    Const WSB_PROP_MASK = &HFFF
    Const FSB_FLAT_MODE = 2
    Const FSB_ENCARTA_MODE = 1
    Const FSB_REGULAR_MODE = 0
    
    Const SB_HORZ = 0
    Const SB_VERT = 1
    Const SB_BOTH = 3
    
    Const ESB_ENABLE_BOTH = &H0
    Const ESB_DISABLE_BOTH = &H3
    Const ESB_DISABLE_LEFT = &H1
    Const ESB_DISABLE_RIGHT = &H2
    Const ESB_DISABLE_UP = &H1
    Const ESB_DISABLE_DOWN = &H2
    Const ESB_DISABLE_LTUP = ESB_DISABLE_LEFT
    Const ESB_DISABLE_RTDN = ESB_DISABLE_RIGHT
    
    Const SIF_RANGE = &H1
    Const SIF_PAGE = &H2
    Const SIF_POS = &H4
    Const SIF_ALL = (SIF_RANGE Or SIF_PAGE Or SIF_POS)
    
    Private Type SCROLLINFO
        cbSize As Long
        fMask As Long
        nMin As Long
        nMax As Long
        nPage As Long
        nPos As Long
        nTrackPos As Long
    End Type
    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 InitializeFlatSB Lib "comctl32" (ByVal hWnd As Long) As Long
    Private Declare Function UninitializeFlatSB Lib "comctl32" (ByVal hWnd As Long) As Long
    Private Declare Function FlatSB_SetScrollProp Lib "comctl32" (ByVal hWnd As Long, ByVal index As Long, ByVal newValue As Long, ByVal fRedraw As Boolean) As Boolean
    Private Declare Function FlatSB_EnableScrollBar Lib "comctl32" (ByVal hWnd As Long, ByVal wSBflags As Long, ByVal wArrows As Long) As Long
    Private Declare Function FlatSB_GetScrollInfo Lib "comctl32" (ByVal hWnd As Long, ByVal fnBar As Long, lpsi As SCROLLINFO) As Boolean
    Private Declare Function FlatSB_GetScrollProp Lib "comctl32" (ByVal hWnd As Long, ByVal index As Long, pValue As Long) As Boolean
    Private Declare Function FlatSB_GetScrollRange Lib "comctl32" (ByVal hWnd As Long, ByVal code As Long, lpMinPos As Long, lpMaxPos As Long) As Boolean
    Private Declare Function FlatSB_SetScrollInfo Lib "comctl32" (ByVal hWnd As Long, ByVal fnBar As Long, lpsi As SCROLLINFO, ByVal fRedraw As Boolean) As Long
    Private Declare Function FlatSB_SetScrollPos Lib "comctl32" (ByVal hWnd As Long, ByVal code As Long, ByVal nPos As Long, ByVal fRedraw As Boolean) As Long
    Private Declare Function FlatSB_SetScrollRange Lib "comctl32" (ByVal hWnd As Long, ByVal code As Long, ByVal nMinPos As Long, ByVal nMaxPos As Long, ByVal fRedraw As Boolean) As Long
    Private Declare Function FlatSB_ShowScrollBar Lib "comctl32" (ByVal hWnd As Long, ByVal code As Long, ByVal fShow As Boolean) As Boolean
    Private Declare Function FlatSB_GetScrollPos Lib "comctl32" (ByVal hWnd As Long, ByVal code As Long) As Long
    Private Sub Form_Activate()
        Dim SI As SCROLLINFO
        'Initialize
        InitializeFlatSB List1.hWnd
        'Set the vertical scrollbar to Encarta-mode
        FlatSB_SetScrollProp List1.hWnd, WSB_PROP_VSTYLE, FSB_ENCARTA_MODE, False
        'Disable the Up-button from the vertical scrollbar
        'FlatSB_EnableScrollBar List1.hWnd, SB_VERT, ESB_DISABLE_UP
        'Set the vertical scroll range
        FlatSB_SetScrollRange List1.hWnd, SB_VERT, 20, 80, False
        'Set the scroll position to 50
        FlatSB_SetScrollPos List1.hWnd, SB_VERT, 0, False
        'Hide the horizontal scrollbar
        FlatSB_ShowScrollBar List1.hWnd, SB_HORZ, True
        'Get the scrollbar information
        SI.cbSize = Len(SI)
        SI.fMask = SIF_ALL
        FlatSB_GetScrollInfo List1.hWnd, SB_VERT, SI
        SI.nPos = SI.nPos - 10
        'Set the new scrollbar information
        FlatSB_SetScrollInfo List1.hWnd, SB_VERT, SI, True
        'Show some scrollbar information on the form
        Dim RetMin As Long, RetMax As Long
        FlatSB_GetScrollRange List1.hWnd, SB_VERT, RetMin, RetMax
        Me.AutoRedraw = True
       ' Me.Print "Scroll Position:" + Str$(Int(100 * (FlatSB_GetScrollPos(List1.hWnd, SB_VERT) / RetMax))) + "%"
        FlatSB_GetScrollProp List1.hWnd, WSB_PROP_VSTYLE, RetMin
        Me.Print "Vertical Scrollbar Mode:" + Str$(RetMin)
    
    
    End Sub
    Private Sub Form_Load()
    
        'KPD-Team 2000
        'URL: http://www.allapi.net/
        'E-Mail: [email protected]
        Dim Ret As Long
        'Create the scrollbars on the form
        Ret = GetWindowLong(List1.hWnd, GWL_STYLE)
        Ret = Ret Or WS_VSCROLL Or WS_HSCROLL
        SetWindowLong List1.hWnd, GWL_STYLE, Ret
    
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
        'Remove the Flat style
        UninitializeFlatSB List1.hWnd
    End Sub
    
    
    '[end of code]
    I'm having some problems but I'm sure you can fix it
    Jop - validweb.nl

    Alcohol doesn't solve any problems, but then again, neither does milk.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width