老鸟分析VB.NET窗体透明度

#t#VB.NET还是比较常用的,于是我研究了一下VB.NET窗体透明度渐变效果:我们还是来看一下在VB6中的实现,在这里拿出来和大家分享一下,希望对大家有用。

10余年专注建站、设计、互联网产品定制网站设计服务,业务涵盖品牌网站设计购物商城网站建设成都小程序开发、软件系统开发、重庆APP软件开发等。凭借多年丰富的经验,我们会仔细了解每个客户的需求而做出多方面的分析、设计、整合,为客户设计出具风格及创意性的商业解决方案,创新互联建站更提供一系列网站制作和网站推广的服务,以推动各中小企业全面信息数字化,并利用创新技术帮助各行业提升企业形象和运营效率。

使用这个函数,可以轻松控制VB.NET窗体透明度。按照微软的要求,透明窗体在创建时应使用WS_EX_LAYERED参数(用CreateWindowEx),或者在创建后设置该参数(用SetWindowLong),我选用后者。

SetLayeredWindowAttributes函数,其中hwnd是透明窗体的句柄,crKey为颜色值,bAlpha是透明度,取值范围是[0,255],dwFlags是透明方式,可以取两个值:当取值为 LWA_ALPHA时,crKey参数无效,bAlpha参数有效;当取值为LWA_COLORKEY时,bAlpha参数有效而窗体中的所有颜色为 crKey的地方将变为透明。

 
 
 
  1. Const LWA_COLORKEY = &H1
  2. Const LWA_ALPHA = &H2
  3. Const GWL_EXSTYLE = (-20)
  4. Const WS_EX_LAYERED = &H80000
  5. PrivateDeclareFunction GetWindowLong Lib "user32" Alias "GetWindowLongA" 
    (ByVal hWnd AsLong, ByVal nIndex AsLong) AsLong
  6. PrivateDeclareFunction SetWindowLong Lib "user32" Alias "SetWindowLongA" 
    (ByVal hWnd AsLong, ByVal nIndex AsLong, ByVal dwNewLong AsLong) AsLong
  7. PrivateDeclareFunction SetLayeredWindowAttributes Lib "user32" 
    (ByVal hWnd AsLong, ByVal crKey AsLong, ByVal bAlpha AsByte, ByVal dwFlags AsLong) AsLong
  8. PrivateSub Form_Load()
  9. Dim Ret AsLong
  10. 'Set the window style to 'Layered'
  11. Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
  12. RetRet = Ret Or WS_EX_LAYERED
  13. SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret
  14. 'Set the opacity of the layered window to 128
  15. '我们可以设置这个数值来控制透明程度
  16. SetLayeredWindowAttributes Me.hWnd, 0, 128, LWA_ALPHA
  17. EndSub

在VB.NET中,太简单了!系统为窗体提供了Opacity属性,来确定窗体的不透明和透明程度,0%为透明,100%为不透明。以下程序通过循环显示VB.NET窗体透明度过程,为了让大家看清楚其变化,在循环过程中使用了System.Threading.Thread.Sleep来停顿。

 
 
 
  1. PrivateSub button1_Click(ByVal sender As System.Object, 
    _ByVal e As System.EventArgs) Handles button1.Click
  2. '窗体的透明度渐变过程
  3. button1.Enabled = False
  4. Dim I AsDouble
  5. For I = 0.01 To 1 Step 0.01
  6. Me.Opacity = I
  7. System.Windows.Forms.Application.DoEvents()
  8. System.Threading.Thread.Sleep(5)
  9. Next
  10. Me.Opacity = 1
  11. button1.Enabled = True
  12. EndSub

分享名称:老鸟分析VB.NET窗体透明度
本文路径:http://www.mswzjz.cn/qtweb/news42/152342.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能