永发信息网

vb如何只显示文字

答案:3  悬赏:60  手机版
解决时间 2021-01-19 12:36
  • 提问者网友:呐年旧曙光
  • 2021-01-19 02:07
vb如何只显示文字
最佳答案
  • 五星知识达人网友:独行浪子会拥风
  • 2021-01-19 03:19
不显示窗体 只在桌面上显示文字 以桌面为背景的两种解决方法:
第一种方法:
半透明窗体、指定颜色的透明窗体
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 SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE = (-20)
Private Sub Command1_Click()
Dim ExsTyle As Long, crKey As Long, bAlpha As Byte, dwFlags As Long

ExsTyle = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
ExsTyle = ExsTyle Or WS_EX_LAYERED
SetWindowLong Me.hwnd, GWL_EXSTYLE, ExsTyle

dwFlags = 2 '2 所有颜色都透明,忽略 bAlpha 参数 '1 只有 crKey 指定的颜色才透明

' Me.BackColor = 123
crKey = Me.BackColor '窗体中那种颜色设为透明
bAlpha = 160 '透明度,范围是 0-255,0的透明度最大,窗体将不可见
'设为 1 会产生这样的效果:窗体实际是可见的,因透明度高好像不可见,看见的下面的其他程序却无法使用。
SetLayeredWindowAttributes Me.hwnd, crKey, bAlpha, dwFlags

'SetLayeredWindowAttributes Me.hwnd, 0, 255, 2 '不透明
End Sub

第二种方法:
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
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 Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_COLORKEY = &H1
Private Sub Form_Load()
'透明实现部分,可将下面的vbBlue改成窗体上(包括所有控件)任一一个不用的颜色
Form1.BackColor = vbBlue 'vbBlue
Dim rtn As Long
rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLong hwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributes hwnd, vbBlue, 0, LWA_COLORKEY 'vbBule
End Sub
全部回答
  • 1楼网友:梦中风几里
  • 2021-01-19 05:24
把窗体设为透明不就行了吗,如果你问窗体怎么秀明
第一种方法
'加一个滚动条HScroll1控件,代码如下
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 SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Const WS_EX_LAYERED = &H80000
Const GWL_EXSTYLE = (-20)
Const LWA_ALPHA = &H2
'Const LWA_COLORKEY = &H1
Private Sub Form_Load()
HScroll1.Max = 249
End Sub
Private Sub HScroll1_Change()
SetWindowLong hwnd, GWL_EXSTYLE, WS_EX_LAYERED
SetLayeredWindowAttributes hwnd, 0, HScroll1.Value, LWA_ALPHA '200为透明度
End Sub
第二种方法
■半透明窗体、指定颜色的透明窗体
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 SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE = (-20)
Private Sub Command1_Click()
Dim ExsTyle As Long, crKey As Long, bAlpha As Byte, dwFlags As Long

ExsTyle = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
ExsTyle = ExsTyle Or WS_EX_LAYERED
SetWindowLong Me.hwnd, GWL_EXSTYLE, ExsTyle

dwFlags = 2 '2 所有颜色都透明,忽略 bAlpha 参数 '1 只有 crKey 指定的颜色才透明

' Me.BackColor = 123
crKey = Me.BackColor '窗体中那种颜色设为透明
bAlpha = 160 '透明度,范围是 0-255,0的透明度最大,窗体将不可见
'设为 1 会产生这样的效果:窗体实际是可见的,因透明度高好像不可见,看见的下面的其他程序却无法使用。
SetLayeredWindowAttributes Me.hwnd, crKey, bAlpha, dwFlags

'SetLayeredWindowAttributes Me.hwnd, 0, 255, 2 '不透明
End Sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯