vb中怎样实现半透明浮动窗口

bestajian 2003-09-29 01:53:22
就是类似于flashget那种窗体,急。
...全文
189 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hdvcd 2003-09-29
  • 打赏
  • 举报
回复
同意
射天狼 2003-09-29
  • 打赏
  • 举报
回复
设置窗口的BorderStyle 为0
ControlBox 设置为FALSE
Caption 为 ""
bestajian 2003-09-29
  • 打赏
  • 举报
回复
呵呵,一粘贴就好了。手头上没vb的资料,前两天才开始学的,不知道能不能直接设置窗口的属性以实现把窗体的边框去掉,就是那种一般应用程序的启动窗口那样的。我只知道Delphi里是可以这样做的
脆皮大雪糕 2003-09-29
  • 打赏
  • 举报
回复
好了,不用发了,cuizm(射天狼) 这个已经实现了
program2100 2003-09-29
  • 打赏
  • 举报
回复
同意楼上的
射天狼 2003-09-29
  • 打赏
  • 举报
回复
Option Explicit

Private Const WS_OVERLAPPED = &H0&
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_ALPHA = &H2
Private Const LWA_COLORKEY = &H1

Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
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 Sub Form_Load()
Dim rtn As Long

rtn = GetWindowLong(Me.hwnd, GWL_EXSTYLE) '取的窗口原先的样式
rtn = rtn Or WS_EX_LAYERED '使窗体添加上新的样式WS_EX_LAYERED
SetWindowLong Me.hwnd, GWL_EXSTYLE, rtn '把新的样式赋给窗体
SetLayeredWindowAttributes Me.hwnd, 255, 200, LWA_ALPHA
'把窗体设置成半透明样式,第二个参数表示透明程度
'取值范围0--255,为0时就是一个全透明的窗体了

End Sub


射天狼 2003-09-29
  • 打赏
  • 举报
回复
Option Explicit

Private Const WS_OVERLAPPED = &H0&
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_ALPHA = &H2
Private Const LWA_COLORKEY = &H1

Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
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 Sub Form_Load()
Dim rtn As Long

rtn = GetWindowLong(Me.hwnd, GWL_EXSTYLE) '取的窗口原先的样式
rtn = rtn Or WS_EX_LAYERED '使窗体添加上新的样式WS_EX_LAYERED
SetWindowLong Me.hwnd, GWL_EXSTYLE, rtn '把新的样式赋给窗体
SetLayeredWindowAttributes Me.hwnd, 255, 200, LWA_ALPHA
'把窗体设置成半透明样式,第二个参数表示透明程度
'取值范围0--255,为0时就是一个全透明的窗体了

End Sub


bestajian 2003-09-29
  • 打赏
  • 举报
回复
whyhow2966@sina.com谢谢
脆皮大雪糕 2003-09-29
  • 打赏
  • 举报
回复
给我一个mail地址,发个例子给你

7,763

社区成员

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

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