资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

vb.net窗体半透明 vbnet web窗体

VB.NET 2005 如何做部分窗体透明

简单的部分透明比较难做,不过可以换个方式考虑一下。

创新互联服务项目包括武定网站建设、武定网站制作、武定网页制作以及武定网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,武定网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到武定省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

把本问题转换成在VB.NET 2005环境下创建不规则窗体(=普通窗体 - 透明部分)问题,解决方法就很多了,网上也有许多例子。如 章立民 的书里就详细讲过。

大致思路如下:

1。将backgroundimage设成一个位图(点阵图)

2.将Transparaencykey设成位图的背景颜色(位图最取背景单纯,单纯部分将成为透明部分)

3.如需要可以将formborderstyle设为none,会移除标题栏,并需要手动编写窗体移动、关闭等动作代码,

半透明,请问在VB中如何使一个窗体半透明

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 GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex 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 gwl_exstyle = -20

Private Const lwa_alpha As Long = H2

Private Const ws_ex_layered As Long = H8000

Private Sub Form_Load()

Dim Fattri As Long

Call SetWindowLong(Me.hwnd, gwl_exstyle, Fattri Or ws_ex_layered)

Call SetLayeredWindowAttributes(Me.hwnd, 0, 200, lwa_alpha)

End Sub

vb窗体半透明了 但是文本框输入的字也半透明了

你不用反复问这个问题了,VB很难实现的。要么窗体整体半透明(用LWA_ALPHA常数指定透明度),要么就窗体完全透明,控件不透明(用LWA_COLORKEY常数指定透明色)。不过你可以把两种窗体结合使用,就是用一个半透明的窗体做背景,上面覆盖一个同样大小的完全透明(控件不透明)的窗体,曲线实现你的目的。

vb中如何使窗体半透明,控件不透明?

下面代码能能使窗体透明,但控件不透明:

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 WS_EX_TRANSPARENT = H20

Private Const LWA_ALPHA = H2

Private Const LWA_COLORKEY = H1

Private Sub Form_Load()

Dim rtn As Long, ctrol As Control

rtn = GetWindowLong(hwnd, GWL_EXSTYLE)

rtn = rtn Or WS_EX_TRANSPARENT

SetWindowLong hwnd, GWL_EXSTYLE, rtn

Me.Show

DoEvents

For Each ctrol In Me.Controls

ctrol.Refresh

Next

'SetLayeredWindowAttributes hwnd, 0, 100, LWA_ALPHA '100值可调,0-255之间,越小透明度越高

'SetLayeredWindowAttributes hwnd, RGB(0, 0, 0), 0, LWA_COLORKEY '将窗体上的黑颜色去掉

End Sub

如何用VB实现半透明控件

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Const WS_EX_LAYERED = H80000

Private Const GWL_EXSTYLE = (-20)

Private Const LWA_ALPHA = H2

Private Const LWA_COLORKEY = H1

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex 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 Sub SetFormTranslucency(hwnd As Long, crKey As Long, bAlpha As Byte, dwFlags As Long)'实现半透明窗体

Dim rtn As Long

rtn = GetWindowLong(hwnd, GWL_EXSTYLE)

rtn = rtn Or WS_EX_LAYERED

SetWindowLong hwnd, GWL_EXSTYLE, rtn

SetLayeredWindowAttributes hwnd, crKey, bAlpha, dwFlags

End Sub

Private Sub Form_Load()

Call SetFormTranslucency(Me.hwnd, 0, 200, 2) '窗体半透明,200为透明值

End Sub

可以实现窗体和窗体上的控件全都半透明,透明度可调

在vb中,如何把半透明窗体(仿Vista)应用于同一程序所有的窗体,使它们都变成半透明的

添加一个公共模块 添加如下代码

Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

Public Const WS_EX_LAYERED = H80000

Public Const GWL_EXSTYLE = (-20)

Public Const LWA_ALPHA = H1

---------------------------------------------

再在每一个窗体的代码上添加如下代码

注意,窗体上有三个控件,text1,command1,label1,这些都是半透明的

Private Sub Form_Load()

Me.BackColor = vbWhite

Text1.BackColor = vbWhite

Command1.BackColor = vbWhite

Label1.BackColor = vbWhite

Dim rtn As Long

rtn = GetWindowLong(hwnd, GWL_EXSTYLE)

rtn = rtn Or WS_EX_LAYERED

SetWindowLong hwnd, GWL_EXSTYLE, rtn

SetLayeredWindowAttributes hwnd, vbWhite, 150, 2 '最后一个参数为 1 时, 是 挖去 第二个参数指定的色,第3个设置透明度的参数无效, 最后一个参数为 2时,第2个参数无效,第3个参数有效 设置透明度范围 【0,255】

End Sub

------------------------------------

我没用过vista,不知是否是同一个效果


当前标题:vb.net窗体半透明 vbnet web窗体
链接URL:http://cdkjz.cn/article/hhhocg.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220