Posted: Sun Sep 04, 2005 8:58 am Post subject: ایجاد یک افکت روی فرم با استفاده از AnimateWindow
سلام بدون شرح ،خلاصه ، مختصر.
وسایل مورد نیاز :
1-command button از نوع مرغوب 2عدد.
2-textbox از نوع طویل ( 5cm) یک عدد.
طرز کار :
وسایل مورد نیاز را روی فرم قرار داده و بعد کد زیر را کپی کنید
Posted: Thu Feb 09, 2006 7:01 am Post subject: Re: ایجاد یک افکت روی فرم با استفاده از AnimateWindow
منم یک کد بلدم که بد نیست!
وسایل مورد نیاز
یک عدد تایمر
Option Explicit
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 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 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 X1 As Long
Private Y1 As Long
Private X2 As Long
Private Y2 As Long
Private X3 As Long
Private Y3 As Long
Private bCloseYet As Boolean
Private X As Byte
Private iCount As Integer
Private Sub Form_Click()
Timer1.Enabled = True
End Sub
Private Sub Form_Initialize()
SetWindowLong Me.hWnd, GWL_EXSTYLE, WS_EX_LAYERED
TranslucentForm 255
End Sub
Private Sub Form_Load()
Timer1.Interval = 1
Timer1.Enabled = False
Dim lHandle As Long
X1 = 10
Y1 = 10
X2 = 550
Y2 = 210
X3 = 75
Y3 = 75
X = 250
lHandle = CreateRoundRectRgn(X1, Y1, X2, Y2, X3, Y3)
SetWindowRgn Me.hWnd, lHandle, True
End Sub
Private Sub Form_Unload(Cancel As Integer)
Cancel = 1
End Sub
Private Sub Label1_Click()
Form_Click
End Sub
Private Sub Timer1_Timer()
Dim lHandle As Long
If X > 10 Then X = X - 10
TranslucentForm CByte(X)
lHandle = CreateRoundRectRgn(X1, Y1, X2, Y2, X3, Y3)
SetWindowRgn Me.hWnd, lHandle, True
X1 = X1 + 5
Y1 = Y1 + 5
X2 = X2 - 5
Y2 = Y2 - 5
If X = 40 Then
Timer1.Enabled = False
End
End If
End Sub
Public Function TranslucentForm(TranslucenceLevel As Byte) As Boolean
SetLayeredWindowAttributes Me.hWnd, 0, TranslucenceLevel, LWA_ALPHA
End Function
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum