以下是窗工程的全部代码,只有一个窗体,在窗体加一个列表框就行. Option Explicit 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 Const LB_SETHORIZONTALEXTENT = &H194 Private Sub setListWidth() '如果列表框不够宽,则增加水平滚动条 Dim i As Integer Dim List_MaxL As Integer ' 获得选项内容的最大长度 For i = 0 To demo_lbox.ListCount - 1 '让list_maxl中保存最长的一条字串 If Len(demo_lbox.List(i)) > List_MaxL Then List_MaxL = Len(demo_lbox.List(i)) + 2 End If Next i ' 判断是否内容显示不完全,如果是则添加水平滚动条 If Me.TextWidth("AA") * List_MaxL > demo_lbox.Width Then SendMessage demo_lbox.hwnd, LB_SETHORIZONTALEXTENT, Me.TextWidth("AA") * List_MaxL, ByVal 0& End If End Sub Private Sub Form_Load() Dim i As Integer ' 为ListBox控件添加选项 For i = 0 To 100 demo_lbox.AddItem ("这是列表框中的一项,最后数字表示这是第几行数据:(第 " + CStr(i)) & "行)" 'demo_lbox.AddItem ("(第 " + CStr(i)) & "行)" Next i ' 设置窗体坐标尺度模式和字体大小 Me.ScaleMode = vbPixels Me.FontSize = demo_lbox.FontSize '设置列表框的水平滚动条 Call setListWidth End Sub ----------------------------- 我要问的是: 这个api函数如何理解,当然它的功能就是为列表框加一个水平滚动条. 可是有几个地方我不明白: |
Private Const LB_SETHORIZONTALEXTENT = &H194
第二:以下这一句,几个参数不明白
SendMessage demo_lbox.hwnd, LB_SETHORIZONTALEXTENT, Me.TextWidth("AA") * List_MaxL, ByVal 0&
&H194是消息的标识符,我最不明白的就是这个常数对应的是什么意思呀,还有,最后一个参数是什么意思?