如何做透明窗体?谢

ccto 2002-01-25 04:28:13
如何做透明窗体?谢
...全文
82 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccto 2002-02-17
  • 打赏
  • 举报
回复
不解?
jett 2002-01-26
  • 打赏
  • 举报
回复
xue
estrella 2002-01-25
  • 打赏
  • 举报
回复
关注
zyl910 2002-01-25
  • 打赏
  • 举报
回复
http://www.dapha.net/soure/form/Transparent%20Buttons%20(UPDATED).zip
93KB
透明按钮,带有光晕.
minglx 2002-01-25
  • 打赏
  • 举报
回复
请问一下半透明的呢
Bardo 2002-01-25
  • 打赏
  • 举报
回复
再用透明标签!
ccto 2002-01-25
  • 打赏
  • 举报
回复
?
ccto 2002-01-25
  • 打赏
  • 举报
回复
这样做出的窗体可否响应鼠标事件?为什么Form_Click事件没响应,应如何做?
dbcontrols 2002-01-25
  • 打赏
  • 举报
回复
Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long

Private Sub Form_Load()
Me.AutoRedraw = True
hBitmap = CreateCompatibleBitmap(Me.hdc, 0, 0)
SelectObject Me.hdc, hBitmap
Me.Refresh
End Sub
uguess 2002-01-25
  • 打赏
  • 举报
回复

制造出透明的Form

来源:cww

说实在的我不知道这所谓透明的Form用在什麽地方,它变成透明後,只要有所移动,
或Mouse移到TitleBae处时,结果总是令人感到莫名奇妙,所以我设定BorderStyle = 0
,令之没有TitleBar。网路上见许多人问起,故有这程式;若有人知道这是用在何处,
请告诉我。

後来我在一个不小心,发现另一种作法令Form变透明的方式,而且比目前的作法好用
请叁考透明的Form上显示背景透通图

可以用SetWindowLong(hwnd, GWL_EXSTYLE, WS_EX_TRANSPARENT)来完成

'form上有Command1, command2两个Button并事先设定form之BorderStyle = 0

Option Explicit
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
Const GWL_EXSTYLE = (-20)
Const WS_EX_TRANSPARENT = &H20&
Private PreValue As Long

Private Sub Command2_Click() '还原变成不透明
Call SetWindowLong(Me.hwnd, GWL_EXSTYLE, PreValue)
Me.Hide
Me.Show
End Sub

Private Sub Form_Load()
Dim i As Long

i = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
'变成透明的Form
PreValue = SetWindowLong(Me.hwnd, GWL_EXSTYLE, i Or WS_EX_TRANSPARENT)
Me.Show
DoEvents
Command1.Refresh '令Command1可见
Command2.Refresh '令Command2可见
End Sub
lily0000000 2002-01-25
  • 打赏
  • 举报
回复
如 何 使 窗 口 透 明

为 了 便 于 观 察, 先 在 窗 口 上 添 加 两 个 按 钮, Command1和 Command2。 加 上 如 下 代 码 :
Private Sub Command1_Click()
Print "Hello"
End Sub

Private Sub Command2_Click()
End
End Sub
这 两 个 按 钮 一 个 用 于 终 止 程 序 运 行 , 一 个 用 于 显 示 文 字 。
然 后 , 将 Form的 Border设 为 None。
最 后 , 在 Form的 声 明 部 分 加 上 以 下 代 码 :
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 SetParent Lib "user32" (ByVal hWndChild _
As Long, ByVal hWndNewParent As Long) As Long
Const WS_EX_TRANSPARENT = &H20&
Const GWL_EXSTYLE = (-20)
最 后 , 在 Form中 加 上 如 下 代 码 。
Private Sub Form_Load()
SetWindowLong hwnd, GWL_EXSTYLE, WS_EX_TRANSPARENT
End Sub

7,763

社区成员

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

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