procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(ListBox1.Handle, LB_SETHORIZONTALEXTENT, ListBox1.Width + 30, 0);
end;
begin
SendMessage(ListBox1.Handle, LB_SETHORIZONTALEXTENT, ListBox1.Width + 30, 0);
end;
解决方案 »
- 如保用VB控制WoRd 制作一个无边框的表格
- vb 两个表中的字段合并
- VB6.0 用语句 添加 控件
- 求INSTALL SHEILD PROFESSIONAL 2000的下载地址。急,在线等。
- 请教vb建excel表格,向单元格赋值时,数字当作字符处理,如何编?
- vb在sql数据库中存取image类型图片的问题,很急,在线等!
- 如何将UTF8字符转化为VB能显示的字符
- 写字板上字体按钮上面的图标 那里有下的啊?
- 请教行家Access数据库程序由哪些部件组合而成???
- 怎么才能让mdi窗体不可拖动改变大小??不要用resize!
- vb中的组合框有没有在选择项被改变后触发的事件
- 哪里能下到vb6.0的安装程序?谢谢~
你可以用
SendMessage ListBox1.Handle, LB_SETHORIZONTALEXTENT, ListBox1.Width + 30, 0
给listbox发一条信息即可
Call SendMessage(ListBox1.hwnd, LB_SETHORIZONTALEXTENT, 0, ByVal 0&)就可以去掉滚动条Public Sub setListScroll(lstObject as ListBox,strText As String)
'目 的: 设置ListBox中的水平滚动条长度 Static lngScrollWidth As Long
Dim lngTmpWidth As Long
lngTmpWidth = Me.TextWidth(strText) / Screen.TwipsPerPixelX + 5
If lngScrollWidth < lngTmpWidth Then
lngScrollWidth = lngTmpWidth
Call SendMessage(lstObject.hwnd, LB_SETHORIZONTALEXTENT, lngScrollWidth, ByVal 0&)
End IfEnd Sub
Public Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const SM_CXVSCROLL = 2
Public Const DT_CALCRECT = &H400
Public Const LB_SETHORIZONTALEXTENT = &H194
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
'为ListBox设置水平滚动条
Sub SetHScroll(FormName as Form, ListName As ListBox)
Dim c As Long
Dim rcText As RECT
Dim newWidth As Long
Dim itemWidth As Long
Dim sysScrollWidth As Long
sysScrollWidth = GetSystemMetrics(SM_CXVSCROLL)
For c = 0 To ListName.ListCount - 1
DrawText FormName.hDC, (ListName.List(c)), -1&, rcText, DT_CALCRECT
itemWidth = rcText.Right + sysScrollWidth
If itemWidth >= newWidth Then
newWidth = itemWidth
End If
Next
SendMessage ListName.hwnd, LB_SETHORIZONTALEXTENT, newWidth, ByVal 0&
End Sub