求教做一个滚动条的函数用以替换ListBox、TreeView、ListView自带的滚动条

banguo 2003-12-04 12:11:54
控件ListBox、TreeView、ListView自带的滚动条很难看,我想做一个滚动条或按钮的函数用以替换ListBox、TreeView、ListView自带的滚动条。可对该函数传递这三种控件的对象,控制这些对象的滚动或上下翻页。请各位大哥大姐帮忙!
...全文
39 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainstormmaster 2003-12-10
  • 打赏
  • 举报
回复
treeview的:
http://expert.csdn.net/Expert/topic/2544/2544152.xml?temp=.4866449
rainstormmaster 2003-12-08
  • 打赏
  • 举报
回复
至于listbox的滚动,不用api都可实现:

Option Explicit

Private Const LB_GETTOPINDEX = &H18E
Private Const LB_SETTOPINDEX = &H197
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 Sub Command1_Click()
'使用api滚动10行
Dim topindex As Long
topindex = SendMessage(List1.hwnd, LB_GETTOPINDEX, 0&, 0&)
Debug.Print topindex
topindex = topindex + 10
SendMessage List1.hwnd, LB_SETTOPINDEX, topindex, 0&

End Sub

Private Sub Command2_Click()
'使用vb代码滚动10行
List1.topindex = List1.topindex + 10
End Sub

Private Sub Form_Load()
Dim i As Long
For i = 1 To 100
Me.List1.AddItem "line " + CStr(i)
Next
End Sub
rainstormmaster 2003-12-08
  • 打赏
  • 举报
回复
//有那些消息可以实现ListBox、TreeView、ListView的滚动条滚动呢?
listview的:
http://expert.csdn.net/Expert/topic/2528/2528466.xml?temp=.8313562
WQ771211 2003-12-08
  • 打赏
  • 举报
回复
这样做恐怕还是不行。。。
最好连接收消息(现在就没有WM_SCROLL了,只有WM_LBUTTONDOWN、WM_MOUSEMOVE)和”画“滚动条的程序都自己写,还要接受鼠标滚轮的消息

建议最好用系统的滚动条,少很多麻烦,如果到XP中,可以直接获得XP的风格
WQ771211 2003-12-08
  • 打赏
  • 举报
回复
非常麻烦
必须先hook
ListBox、TreeView、ListView的窗口,用api使滚动条不显示

然后拦截WM_SCROLL消息,并且通过GetScrollInfo获取系统滚动条的设置(初值、步长等等)
自己“画”滚动条
banguo 2003-12-08
  • 打赏
  • 举报
回复
rainstormmaster(rainstormmaster) :
有那些消息可以实现ListBox、TreeView、ListView的滚动条滚动呢?
banguo 2003-12-08
  • 打赏
  • 举报
回复
rainstormmaster(rainstormmaster):
用sendmessage发送消息实现滚动,那对应的消息有是什么呢?
rainstormmaster 2003-12-04
  • 打赏
  • 举报
回复
或者先用setwindowlong取消这些控件的滚动条,然后用sendmessage发送消息实现滚动,不同的控件对应的消息有所不同
nik_Amis 2003-12-04
  • 打赏
  • 举报
回复
好麻烦啊

用钩子钩来钩去的
rainstormmaster 2003-12-04
  • 打赏
  • 举报
回复
Owner-draw
jamex 2003-12-04
  • 打赏
  • 举报
回复
我也在问这个阿?

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧