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 = To List1.ListCount -
''让list_maxl中保存最长的一条字串
If Len(List1.List(i)) > List_MaxL Then
List_MaxL = Len(List1.List(i)) +
End If
Next i
'判断是否内容显示不完全,如果是则添加水平滚动条
If Me.TextWidth("AA ") * List_MaxL > List1.Width Then
SendMessage List1.hwnd, LB_SETHORIZONTALEXTENT, Me.TextWidth("a") * List_MaxL, ByVal &
End If
End Sub
--------------------------------------------------------------------------------------------------
Private Sub Form_Load()
Dim i As Integer
'为ListBox控件添加选项
For i = To
List1.AddItem ("这是,最据jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj:(第 " + CStr(i)) & "行) "
'List1.AddItem ( "(第 " + CStr(i)) & "行) "
Next i
' 设置窗体坐标尺度模式和字体大小
Me.ScaleMode = vbPixels
Me.FontSize = List1.FontSize
设置列表框的水平滚动条
Call setListWidth
End Sub '方法二:-----------------------------------------------------------------------------------------------
'添加 ListBox 水平滚动条-------------------------------------------------
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type Private 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
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 Const LB_SETHORIZONTALEXTENT = &H194
Const DT_CALCRECT = &H400 Public Function ListTextWidth(ByRef lstThis As ListBox) As Long '获取最长项目的象素长度值
Dim i As Long
Dim tR As RECT
Dim lW As Long
Dim lWidth As Long
Dim lHDC As Long
With lstThis.Parent.Font
.Name = lstThis.Font.Name
.Size = lstThis.Font.Size
.Bold = lstThis.Font.Bold
.Italic = lstThis.Font.Italic
End With
lHDC = lstThis.Parent.hdc
For i = To lstThis.ListCount - '遍历所有的列表项以找到最长的项
DrawText lHDC, lstThis.List(i), -, tR, DT_CALCRECT
lW = tR.Right - tR.Left +
If lW > lWidth Then lWidth = lW
Next
ListTextWidth = lWidth + '返回最长列表项的长度(像素)
End Function
Private Sub Form_Load()
'设置 List 横向滚动条
dim l As Long
l = ListTextWidth(ltCol)
SendMessage ltCol.hwnd, LB_SETHORIZONTALEXTENT, l, End Sub

 
 

VB ListBox 添加横向滚动条的更多相关文章

  1. 移动端添加横向滚动条&隐藏

    添加横向滚动条ul { display: flex; overflow-x: auto; overflow-y: hidden; white-space: nowrap; }隐藏滚动条,保留滚动效果 ...

  2. html table表格列数太多添加横向滚动条

    HTML的table表格的列数如果太多或者某一列的内容太长,就会导致表格td的内容被挤压变形,对后台的使用体验非常不友好.比如下面的情况: 那么如何在表格列数较多的情况下添加横向滚动条?其实很简单,只 ...

  3. 为MFC中的ListBox添加水平滚动条

    我们知道,MFC中的水平滚动条并不像垂直滚动条那样的智能.当文字超出ListBox的宽度时,水平滚动条并不会自己出现,我们需要手动的调用CListBox中的函数SetHorizontalExtent设 ...

  4. 给Jqgrid添加横向滚动条,实现点击行数据,触发事件。

    function reloadNoKitScheduleGridData() { $("#noKittingScheduleList").jqGrid({ url: ". ...

  5. table添加横向滚动条

    <div style="width:1000px; height:200px; overflow:scroll;"> <table border=" r ...

  6. 发掘ListBox的潜力(一):自动调整横向滚动条宽度

    <自绘ListBox的两种效果>一文帖出之后,从反馈信息来看,大家对这种小技巧还是很认同.接下来我将继续围绕ListBox写一系列的文章,进一步发掘ListBox的潜力,其中包括:自动调整 ...

  7. WPF,解决Listbox,按住ListboxItem向下拖出Listbox,横向滚动条跑到最后。

    类似这种样式的控件,.,在横向滚动条隐藏的情况下有这样的问题.(横向滚动条显示的时候也会,,目前不知道怎么解决.) 因为这个控件偏移是利用ListBox的ItemsPanelTemplate模版里的S ...

  8. 为TListBox添加水平滚动条

    为TListBox添加水平滚动条 实例说明 TListBox组件是一个较为常用的列表组件,在默认情况下该组件是没有水平滚动条的,所以文字过长会显示不完全,在文字较短的情况下还可以,但是如果一行的文字很 ...

  9. UI组件--element-ui合计行在横向滚动条下面的解决方法

    使用element-ui合计功能, 因列数较多, 产生横向滚动条: 但是合计行却在滚动条下面, 拖动滚动条合计行不会跟着横向滚动. 在当前页面添加以下样式: <style lang='less' ...

随机推荐

  1. (coco2d-x初学)xcode5.0安装 cocos2d-x2.2.0

    cocos2d-x 2.0版本之后不再支持xcode模板安装. 下面介绍一下创建步骤:我下载的是cocos2d-x2.2.0版本 1.下载Cocos2d-x的地址点击打开链接 2.解压缩压缩包.打开终 ...

  2. BroadcastReceiver基础总结

    BroadcastReceiver基础总结 BroadcastReceiver是Android四大组件之一,主要负责接收系统或其他程序发出的广播,在开发中,通常用做事件驱动的起源,比如开机就要开启一个 ...

  3. WPF/Silverlight中的RichTextBox总结

    WPF/Silverlight中的RichTextBox总结   在WPF或者是在Silverlight中有个非常强大的可以编辑的容器控件RichTextBox,有的时间会采取该控件来作为编辑控件.鉴 ...

  4. Excel 菜单系统

    Excel 菜单系统 在开始Excel开发之前,需要把架子搭起来.最直接的那就是Excel里面的菜单了,他向用户直观的展现了我们的插件具有哪些功能.菜单出来之后我们就可以实现里面的事件和功能了.Exc ...

  5. 一种基于自定义代码的asp.net网站首页根据IP自动跳转指定页面的方法!

    一种基于自定义代码的asp.net网站首页根据IP自动跳转指定页面的方法! 对于大中型网站,为了增强用户体验,往往需要根据不同城市站点的用户推送或展现相应个性化的内容,如对于一些大型门户网站的新闻会有 ...

  6. HDU--杭电--3415--Max Sum of Max-K-sub-sequence--队列--双向队列

    Max Sum of Max-K-sub-sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  7. OpenRisc-37-OpenRISC的CPU&core的整体架构分析

    引言 前面我们分析了ORPSoC的整体架构,并对其子系统进行了深入的分析和了解.但对于ORPSoC的核心模块or1200_top及其内部的core--or1200_cpu模块却鲜有涉及,算是ORPSo ...

  8. iOS-王云鹤 APP首次启动显示用户指导

    这个功能的重点就是在如何判断应用是第一次启动的. 其实很简单 我们只需要在一个类里面写好用户引导页面  基本上都是使用UIScrollView 来实现, 新建一个继承于UIViewController ...

  9. 学习OpenCV:滤镜系列(15)——羽化(模糊边缘)

    ============================================== 版权所有:小熊不去实验室CSDN博客 ================================== ...

  10. linux主机load average的概念&&计算过程&&注意事项

    最近开发的一个模块需要根据机房各节点的负载情况(如网卡IO.load average等指标)做任务调度,刚开始对Linux机器load average这项指标不是很清楚,经过调研,终于搞清楚了其计算方 ...