如何改变ScrollBar的颜色?

RainStoneMail 2003-06-16 10:42:21
我想在彩色的空间上用一个ScrollBar但ScrollBar又不能改变背景颜色,使用Form2.0又会带来内存错误等,那位打下能帮忙万分感谢!
...全文
154 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
rappercn 2003-06-16
  • 打赏
  • 举报
回复
Const GWL_STYLE = (-16)

Const WSB_PROP_VSTYLE = &H100
Const FSB_FLAT_MODE = 2
Const FSB_ENCARTA_MODE = 1
Const FSB_REGULAR_MODE = 0

Const SB_HORZ = 0
Const SB_VERT = 1
Const SB_BOTH = 3

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function InitializeFlatSB Lib "comctl32" (ByVal hWnd As Long) As Long
Private Declare Function UninitializeFlatSB Lib "comctl32" (ByVal hWnd As Long) As Long
Private Declare Function FlatSB_SetScrollProp Lib "comctl32" (ByVal hWnd As Long, ByVal index As Long, ByVal newValue As Long, ByVal fRedraw As Boolean) As Boolean
Private Sub Form_Activate()
'Initialize
InitializeFlatSB MSHFlexGrid1.hWnd
FlatSB_SetScrollProp MSHFlexGrid1.hWnd, WSB_PROP_VSTYLE, FSB_ENCARTA_MODE, True
End Sub
Private Sub Form_Load()
Dim Ret As Long
Dim I, J As Integer
MSHFlexGrid1.Cols = 10
MSHFlexGrid1.Rows = 20
For I = 1 To 9
For J = 1 To 19
MSHFlexGrid1.TextMatrix(J, I) = J & "行" & I & "列"
Next
Next I

Ret = GetWindowLong(MSHFlexGrid1.hWnd, GWL_STYLE)
Ret = Ret Or WS_VSCROLL Or WS_HSCROLL
SetWindowLong MSHFlexGrid1.hWnd, GWL_STYLE, Ret

End Sub
Private Sub Form_Unload(Cancel As Integer)
UninitializeFlatSB MSHFlexGrid1.hWnd
End Sub


转自:http://expert.csdn.net/Expert/topic/1905/1905605.xml?temp=.5623438

1,451

社区成员

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

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