Loading...

9 Haziran 2007 Cumartesi

Transparan Formlar || VB

İşletim Sistemlerinde Görmüşsünüzdür,Transparan Formları Şimdi Bunları Beraber Yapacağız.
Simdi "Biz bunu nasil yapariz?" derseniz, VB de bu islemi API ile yapabiliyoruz. Yani windows un kullandigi sekildeki gibi.

Gelelim isin koduna. Asagidaki API leri modulde tanımlayın.


Public Declare Function GetWindowLong Lib "User32.dll" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "User32.dll" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function SetLayeredWindowAttributes Lib "User32.dll" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Public Declare Function SetLayeredAttributes Lib "User32.dll" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Public Declare Function UpdateLayeredWindow Lib "User32.dll" (ByVal hWnd As Long, ByVal hdcDst As Long, pptDst As Any, psize As Any, ByVal hdcSrc As Long, pptSrc As Any, crKey As Long, ByVal pblend As Long, ByVal dwFlags As Long) As Long


Bunlarida yine module ekleyin.


Public Const GWL_STYLE = (-16)
Public Const GWL_EXSTYLE = (-20)
Public Const WS_EX_LAYERED = &H80000
Public Const ULW_COLORKEY = &H1
Public Const ULW_ALPHA = &H2
Public Const ULW_OPAQUE = &H4
Public Const AC_SRC_OVER = &H0
Public Const AC_SRC_ALPHA = &H1
Public Const AC_SRC_NO_PREMULT_ALPHA = &H1
Public Const AC_SRC_NO_ALPHA = &H2
Public Const AC_DST_NO_PREMULT_ALPHA = &H10
Public Const AC_DST_NO_ALPHA = &H20
Public Const LWA_COLORKEY = &H1
Public Const LWA_ALPHA = &H2


Simdi isi kolaylastirmak amaciyla function yapalim. Bu functionida module yazin.


Public Sub MakeTransparent(hWnd, Rate)
Dim WinInfo As Long
On Local Error Resume Next
WinInfo = GetWindowLong(hWnd, GWL_EXSTYLE)
WinInfo = WinInfo Or WS_EX_LAYERED
On Local Error Resume Next
SetWindowLong hWnd, GWL_EXSTYLE, WinInfo
On Local Error Resume Next
SetLayeredWindowAttributes hWnd, 0, Rate, LWA_ALPHA
End Sub


Sira geldi function i kullanmaya. Function çalisirken pencerenin daha dogrusu formun hWnd(Handle) numarasini alip formu transparan yapacağız. Buradaki rate ne diyeceksiniz. Rate saydam olma orani. Bunu 0 dan 254 e kadar sayı değeri olmak üzere ayarlayabilirsiniz.

Simdi biz fonksiyonu efekt olsun diye forma Fade In - Fade Out özelligi verelim.

Formun Load olayina;


For X = 0 To 254 Step -19
MakeTransparent Me.hWnd, X
Next
Me.Show


Formun Unload ve Terminate olayinada bu kodu yerlestirelim..


For X = 254 To 0 Step -19
MakeTransparent Me.hWnd, X
Next
End

!! Programi kapatirken End degilde Unload Me komutunu kullaniniz. !!

Iste bu kadar. Artik formunuz Fade In- Out seklinde açilip kapanacak. Bence bu güzel bi görünüm katacak programa.

Dikkat: Unutmayin ki bu API sadece Windows 2000, Windows XP ve üzeri sistemlerde mevcut aksi halde çalismaz(Gerçi fonksiyonda göz önünde bulundurmuyor)

Hiç yorum yok:

 
eXTReMe Tracker
Sayfa Bloggoayrılık yazılarıoyunlarkurye web tasarımı broşürlük dizi izle dizi izleKombi Tesisat Radyo DinleChat paysafe paysafe kartSohbet arkadaş travestitravesti travesti travesti