自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

老鳥分析VB.NET窗體透明度

開發(fā) 后端
這里介紹輕松控制VB.NET窗體透明度。按照微軟的要求,透明窗體在創(chuàng)建時應(yīng)使用WS_EX_LAYERED參數(shù)(用CreateWindowEx)

#t#VB.NET還是比較常用的,于是我研究了一下VB.NET窗體透明度漸變效果:我們還是來看一下在VB6中的實(shí)現(xiàn),在這里拿出來和大家分享一下,希望對大家有用。

使用這個函數(shù),可以輕松控制VB.NET窗體透明度。按照微軟的要求,透明窗體在創(chuàng)建時應(yīng)使用WS_EX_LAYERED參數(shù)(用CreateWindowEx),或者在創(chuàng)建后設(shè)置該參數(shù)(用SetWindowLong),我選用后者。

SetLayeredWindowAttributes函數(shù),其中hwnd是透明窗體的句柄,crKey為顏色值,bAlpha是透明度,取值范圍是[0,255],dwFlags是透明方式,可以取兩個值:當(dāng)取值為 LWA_ALPHA時,crKey參數(shù)無效,bAlpha參數(shù)有效;當(dāng)取值為LWA_COLORKEY時,bAlpha參數(shù)有效而窗體中的所有顏色為 crKey的地方將變?yōu)橥该鳌?/P>

  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. '我們可以設(shè)置這個數(shù)值來控制透明程度  
  16. SetLayeredWindowAttributes Me.hWnd, 0, 128, LWA_ALPHA  
  17. EndSub 

在VB.NET中,太簡單了!系統(tǒng)為窗體提供了Opacity屬性,來確定窗體的不透明和透明程度,0%為透明,100%為不透明。以下程序通過循環(huán)顯示VB.NET窗體透明度過程,為了讓大家看清楚其變化,在循環(huán)過程中使用了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 
責(zé)任編輯:佚名 來源: CSDN
相關(guān)推薦

2009-10-16 09:35:24

VB.NET制作透明窗

2009-10-14 15:20:21

VB.NET窗體指針

2009-10-14 13:56:05

VB.NET數(shù)據(jù)窗體

2010-01-13 09:31:39

VB.NET窗體打印

2009-10-14 15:34:29

VB.NET窗體編程模

2010-01-11 15:12:30

VB.NET特殊窗體

2009-10-09 16:54:03

VB.NET窗體

2009-10-26 17:53:50

VB.NET新窗體

2010-01-13 15:52:59

VB.NET浮動窗體

2009-11-10 15:07:11

VB.NET窗體

2009-10-14 14:50:16

VB6.0VB.NET

2009-10-30 11:07:04

VB.NET Syst

2009-11-02 17:12:01

VB和VB.NET

2009-04-30 13:24:45

VB.NET 2008窗體應(yīng)用實(shí)例

2009-11-03 17:31:01

VB.NET窗體

2010-01-07 16:51:56

VB.NET窗體鉤子

2010-01-08 14:07:47

VB.NET窗體傳值

2009-10-12 17:32:36

VB.NET窗體應(yīng)用技

2010-01-11 10:44:47

VB.NET多窗體

2010-01-11 15:31:04

VB.NET拖動窗體
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號