List Box Horizontal

Senin, 27 Desember 2010
Desain horizontal di list box secara manual sudah pasti ga bakalan bisa. cobain ajah deh kalo memang bisa, tanpa listing code?
artikel ini saya akan membahas listing code tersebut. di textbox sih bisa menggunakan scrollbar, tapi kalo listbox secara otomatis hanya scrollbar vertikalnya saja.
pertama kali yang kamu harus lakukan hanya membuat satu form dan satu lisbox. itu saja?

desain terlebih dahulu seperti gambar disamping ini.
lisitng code berikut saya akan gunakan jenis huruf random alias acak. kamu ingin buat sesuka mu?tinggal modif saja listing codenya.
berikut ini listing codenya

Option Explicit

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

Private Const LB_SETHORIZONTALEXTENT = &H194

Private mlngLongestItemLen  As Long

'------------------------------------------------------------------------
Private Sub Form_Load()
'------------------------------------------------------------------------

    Dim intX        As Integer
    Dim strNewItem  As String
    Dim lngItemLen  As Long
   
    Randomize
   
    For intX = 1 To 100
        strNewItem = String$(GetRandomNumber(1, 100), 64 + GetRandomNumber(1, 26)) & " "
        lngItemLen = Me.TextWidth(strNewItem)
        If Me.ScaleMode = vbTwips Then
            lngItemLen = lngItemLen / Screen.TwipsPerPixelX
        End If
        If lngItemLen > mlngLongestItemLen Then
            mlngLongestItemLen = lngItemLen
        End If
        List1.AddItem strNewItem
        SendMessageByNum List1.hwnd, LB_SETHORIZONTALEXTENT, mlngLongestItemLen, 0
    Next
   
End Sub

'------------------------------------------------------------------------
Private Function GetRandomNumber(pintLowerBound As Integer, _
                                 pintUpperBound As Integer) _
As Integer
'------------------------------------------------------------------------
   
   
    GetRandomNumber = Int((pintUpperBound - pintLowerBound + 1) * Rnd + pintLowerBound)

End Function

Private Sub List1_Click()

End Sub

Movie Category 1