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

10余年專注建站、設計、互聯網產品定制網站設計服務,業(yè)務涵蓋品牌網站設計、購物商城網站建設、成都小程序開發(fā)、軟件系統(tǒng)開發(fā)、重慶APP軟件開發(fā)等。憑借多年豐富的經驗,我們會仔細了解每個客戶的需求而做出多方面的分析、設計、整合,為客戶設計出具風格及創(chuàng)意性的商業(yè)解決方案,創(chuàng)新互聯建站更提供一系列網站制作和網站推廣的服務,以推動各中小企業(yè)全面信息數字化,并利用創(chuàng)新技術幫助各行業(yè)提升企業(yè)形象和運營效率。
使用這個函數,可以輕松控制VB.NET窗體透明度。按照微軟的要求,透明窗體在創(chuàng)建時應使用WS_EX_LAYERED參數(用CreateWindowEx),或者在創(chuàng)建后設置該參數(用SetWindowLong),我選用后者。
SetLayeredWindowAttributes函數,其中hwnd是透明窗體的句柄,crKey為顏色值,bAlpha是透明度,取值范圍是[0,255],dwFlags是透明方式,可以取兩個值:當取值為 LWA_ALPHA時,crKey參數無效,bAlpha參數有效;當取值為LWA_COLORKEY時,bAlpha參數有效而窗體中的所有顏色為 crKey的地方將變?yōu)橥该鳌?/p>
- Const LWA_COLORKEY = &H1
- Const LWA_ALPHA = &H2
- Const GWL_EXSTYLE = (-20)
- Const WS_EX_LAYERED = &H80000
- PrivateDeclareFunction GetWindowLong Lib "user32" Alias "GetWindowLongA"
(ByVal hWnd AsLong, ByVal nIndex AsLong) AsLong- PrivateDeclareFunction SetWindowLong Lib "user32" Alias "SetWindowLongA"
(ByVal hWnd AsLong, ByVal nIndex AsLong, ByVal dwNewLong AsLong) AsLong- PrivateDeclareFunction SetLayeredWindowAttributes Lib "user32"
(ByVal hWnd AsLong, ByVal crKey AsLong, ByVal bAlpha AsByte, ByVal dwFlags AsLong) AsLong- PrivateSub Form_Load()
- Dim Ret AsLong
- 'Set the window style to 'Layered'
- Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
- RetRet = Ret Or WS_EX_LAYERED
- SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret
- 'Set the opacity of the layered window to 128
- '我們可以設置這個數值來控制透明程度
- SetLayeredWindowAttributes Me.hWnd, 0, 128, LWA_ALPHA
- EndSub
在VB.NET中,太簡單了!系統(tǒng)為窗體提供了Opacity屬性,來確定窗體的不透明和透明程度,0%為透明,100%為不透明。以下程序通過循環(huán)顯示VB.NET窗體透明度過程,為了讓大家看清楚其變化,在循環(huán)過程中使用了System.Threading.Thread.Sleep來停頓。
- PrivateSub button1_Click(ByVal sender As System.Object,
_ByVal e As System.EventArgs) Handles button1.Click- '窗體的透明度漸變過程
- button1.Enabled = False
- Dim I AsDouble
- For I = 0.01 To 1 Step 0.01
- Me.Opacity = I
- System.Windows.Forms.Application.DoEvents()
- System.Threading.Thread.Sleep(5)
- Next
- Me.Opacity = 1
- button1.Enabled = True
- EndSub
本文標題:老鳥分析VB.NET窗體透明度
轉載注明:http://www.dlmjj.cn/article/cdjeiie.html


咨詢
建站咨詢
