home *** CD-ROM | disk | FTP | other *** search
Wrap
VERSION 4.00 Begin VB.Form frmList Caption = "Listbox Example" ClientHeight = 3015 ClientLeft = 1095 ClientTop = 1515 ClientWidth = 5040 Height = 3420 Left = 1035 LinkTopic = "Form1" ScaleHeight = 3015 ScaleWidth = 5040 Top = 1170 Width = 5160 Begin VB.CommandButton Command4 Caption = "Add2" Height = 435 Left = 3540 TabIndex = 4 Top = 2220 Width = 1095 End Begin VB.CommandButton Command3 Caption = "Add1" Height = 435 Left = 3540 TabIndex = 3 Top = 1740 Width = 1095 End Begin VB.CommandButton Command2 Caption = "Scrollbars" Height = 495 Left = 3540 TabIndex = 2 Top = 1200 Width = 1095 End Begin VB.CommandButton Command1 Caption = "Fill Listbox" Height = 495 Left = 3540 TabIndex = 1 Top = 600 Width = 1095 End Begin VB.ListBox List1 Height = 1980 Left = 240 TabIndex = 0 Top = 600 Width = 2955 End Attribute VB_Name = "frmList" Attribute VB_Creatable = False Attribute VB_Exposed = False Option Explicit ' copyright 1997 by Desaware Inc. All Rights Reserved 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 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 Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long Private Const LB_ADDSTRING = &H180 Private Const LB_INSERTSTRING = &H181 Private Const LB_DELETESTRING = &H182 Private Const LB_SELITEMRANGEEX = &H183 Private Const LB_RESETCONTENT = &H184 Private Const LB_SETSEL = &H185 Private Const LB_SETCURSEL = &H186 Private Const LB_GETSEL = &H187 Private Const LB_GETCURSEL = &H188 Private Const LB_GETTEXT = &H189 Private Const LB_GETTEXTLEN = &H18A Private Const LB_GETCOUNT = &H18B Private Const LB_SELECTSTRING = &H18C Private Const LB_DIR = &H18D Private Const LB_GETTOPINDEX = &H18E Private Const LB_FINDSTRING = &H18F Private Const LB_GETSELCOUNT = &H190 Private Const LB_GETSELITEMS = &H191 Private Const LB_SETTABSTOPS = &H192 Private Const LB_GETHORIZONTALEXTENT = &H193 Private Const LB_SETHORIZONTALEXTENT = &H194 Private Const LB_SETCOLUMNWIDTH = &H195 Private Const LB_ADDFILE = &H196 Private Const LB_SETTOPINDEX = &H197 Private Const LB_GETITEMRECT = &H198 Private Const LB_GETITEMDATA = &H199 Private Const LB_SETITEMDATA = &H19A Private Const LB_SELITEMRANGE = &H19B Private Const LB_SETANCHORINDEX = &H19C Private Const LB_GETANCHORINDEX = &H19D Private Const LB_SETCARETINDEX = &H19E Private Const LB_GETCARETINDEX = &H19F Private Const LB_SETITEMHEIGHT = &H1A0 Private Const LB_GETITEMHEIGHT = &H1A1 Private Const LB_FINDSTRINGEXACT = &H1A2 Private Const LB_SETLOCALE = &H1A5 Private Const LB_GETLOCALE = &H1A6 Private Const LB_SETCOUNT = &H1A7 Private Const LB_MSGMAX = &H1A8 Private Const LB_INITSTORAGE = &H1A8 Private Const LB_ITEMFROMPOINT = &H1A9 ' Combo Box return Values Private Const CB_OKAY = 0 Private Const CB_ERR = (-1) Private Const CB_ERRSPACE = (-2) ' Combo Box messages Private Const CB_GETEDITSEL = &H140 Private Const CB_LIMITTEXT = &H141 Private Const CB_SETEDITSEL = &H142 Private Const CB_ADDSTRING = &H143 Private Const CB_DELETESTRING = &H144 Private Const CB_DIR = &H145 Private Const CB_GETCOUNT = &H146 Private Const CB_GETCURSEL = &H147 Private Const CB_GETLBTEXT = &H148 Private Const CB_GETLBTEXTLEN = &H149 Private Const CB_INSERTSTRING = &H14A Private Const CB_RESETCONTENT = &H14B Private Const CB_FINDSTRING = &H14C Private Const CB_SELECTSTRING = &H14D Private Const CB_SETCURSEL = &H14E Private Const CB_SHOWDROPDOWN = &H14F Private Const CB_GETITEMDATA = &H150 Private Const CB_SETITEMDATA = &H151 Private Const CB_GETDROPPEDCONTROLRECT = &H152 Private Const CB_SETITEMHEIGHT = &H153 Private Const CB_GETITEMHEIGHT = &H154 Private Const CB_SETEXTENDEDUI = &H155 Private Const CB_GETEXTENDEDUI = &H156 Private Const CB_GETDROPPEDSTATE = &H157 Private Const CB_FINDSTRINGEXACT = &H158 Private Const CB_SETLOCALE = &H159 Private Const CB_GETLOCALE = &H15A Private Const CB_MSGMAX = &H15B Private Const CB_GETDROPPEDWIDTH = &H15F Private Const CB_GETHORIZONTALEXTENT = &H15D Private Const CB_GETTOPINDEX = &H15B Private Const CB_INITSTORAGE = &H161 Private Const CB_SETDROPPEDWIDTH = &H160 Private Const CB_SETHORIZONTALEXTENT = &H15E Private Const CB_SETTOPINDEX = &H15C Private Const WM_SETREDRAW = &HB Private Sub Command1_Click() Dim tabpos(3) As Long Dim x& tabpos(0) = 40 ' About 10 characters tabpos(1) = 50 tabpos(2) = 70 Call SendMessage(List1.hwnd, LB_SETTABSTOPS, 3, tabpos(0)) For x = 1 To 20 List1.AddItem "first" & vbTab & "2nd" & vbTab & "3rd" & vbTab & "4th and last entry" Next x End Sub Private Sub Command2_Click() Call SendMessageBynum(List1.hwnd, LB_SETHORIZONTALEXTENT, 400, 0) End Sub Private Sub Command3_Click() Dim l& List1.Clear For l = 1 To 1000 Call SendMessageByString(List1.hwnd, LB_ADDSTRING, 0, "string entry") Next l End Sub Private Sub Command4_Click() Dim l& List1.Clear Call SendMessageBynum(List1.hwnd, WM_SETREDRAW, False, 0) For l = 1 To 1000 Call SendMessageByString(List1.hwnd, LB_ADDSTRING, 0, "string entry") Next l Call SendMessageBynum(List1.hwnd, WM_SETREDRAW, True, 0) End Sub