如何 slider 控件透明?

minewdy 2003-12-26 07:35:25
如题
...全文
208 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
minewdy 2003-12-27
  • 打赏
  • 举报
回复
我用 SetLayered Slider1.hWnd, True, 128
好像不能够透明啊,ch21t 兄
minewdy 2003-12-27
  • 打赏
  • 举报
回复
大家说的都非常有道理,我试试先
踏平扶桑 2003-12-26
  • 打赏
  • 举报
回复
可以用shape和label来做slider的效果和作用
Ringfo 2003-12-26
  • 打赏
  • 举报
回复
slider控件很丑,透明了也不好看
解决:
一、自己做控件,或用一些东西模拟
二、设背景色与容器背景色相同
道素 2003-12-26
  • 打赏
  • 举报
回复
试试这个
SetLayered 传入控件的句柄
--------------
Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function SetLayeredWindowAttributes Lib "User32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Declare Function UpdateLayeredWindow Lib "User32" (ByVal hWnd As Long, ByVal hdcDst As Long, pptDst As Any, psize As Any, ByVal hdcSrc As Long, pptSrc As Any, crKey As Long, ByVal pblend As Long, ByVal dwFlags As Long) As Long
Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowName As Any) As Long
Declare Function SendMessageByNum& Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
Declare Function SendMessageByString Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Declare Function GetCursorPos Lib "User32" (lpPoint As Where) As Long
Declare Function WindowFromPoint Lib "User32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long


Type Where
Pointa As Long
Pointb As Long
End Type
Public Type POINTAPI
x As Long
y As Long
End Type


Public Type SIZE
cx As Long
cy As Long
End Type


Public Type BLENDFUNCTION
BlendOp As Byte
BlendFlags As Byte
SourceConstantAlpha As Byte
AlphaFormat As Byte
End Type
Public Const WS_EX_LAYERED = &H80000
Public Const GWL_STYLE = (-16)
Public Const GWL_EXSTYLE = (-20)
Public Const AC_SRC_OVER = &H0
Public Const AC_SRC_ALPHA = &H1
Public Const AC_SRC_NO_PREMULT_ALPHA = &H1
Public Const AC_SRC_NO_ALPHA = &H2
Public Const AC_DST_NO_PREMULT_ALPHA = &H10
Public Const AC_DST_NO_ALPHA = &H20
Public Const LWA_COLORKEY = &H1
Public Const LWA_ALPHA = &H2
Public Const ULW_COLORKEY = &H1
Public Const ULW_ALPHA = &H2
Public Const ULW_OPAQUE = &H4
Public lret As Long




Sub SetLayered(ByVal hWnd As Long, SetAs As Boolean, bAlpha As Byte)
lret = GetWindowLong(hWnd, GWL_EXSTYLE)


If SetAs = True Then
lret = lret Or WS_EX_LAYERED
Else
lret = lret And Not WS_EX_LAYERED
End If
SetWindowLong hWnd, GWL_EXSTYLE, lret
SetLayeredWindowAttributes hWnd, 0, bAlpha, LWA_ALPHA
End Sub
northwolves 2003-12-26
  • 打赏
  • 举报
回复
自己用两个LABEL画,加入相应代码,如(部分):
Private Sub Form_Load()
Label1.Move 100, 1000, 5000, 300
Label2.Move 100, 800, 100, 700
Label1.BackStyle = 0
Label1.BorderStyle = 1
Label2.BackStyle = 1
Label2.BackColor = vbCyan
Label1.Caption = ""
Label2.Caption = ""
End Sub
Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then Label2.Move X, 800
End Sub

Private Sub Label2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then Label2.Move X, 800
End Sub
LanceJin 2003-12-26
  • 打赏
  • 举报
回复
flc 2003-12-26
  • 打赏
  • 举报
回复
关注

7,785

社区成员

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

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