ParsX.com
پذیرش پروژه از دانشجویی ... تا سازمانی 09376225339
 
   ProfileProfile   Log in to check your private messagesLog in to check your private messages  |  FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups Log inLog in   RegisterRegister 

ایجاد یک افکت روی فرم با استفاده از AnimateWindow

 
Post new topic   Reply to topic    ParsX.com Forum Index -> ويژوال بيسيك .NET
View previous topic :: View next topic  
Author Message
sajadkk
مهمون يكي دو روزه


Joined: 11 Jul 2005
Posts: 18

PostPosted: Sun Sep 04, 2005 8:58 am    Post subject: ایجاد یک افکت روی فرم با استفاده از AnimateWindow Reply with quote

سلام
بدون شرح ،خلاصه ، مختصر.
وسایل مورد نیاز :
1-command button از نوع مرغوب 2عدد.
2-textbox از نوع طویل ( 5cm) یک عدد.
طرز کار :
وسایل مورد نیاز را روی فرم قرار داده و بعد کد زیر را کپی کنید
Const AW_HOR_POSITIVE = &H1
Const AW_HOR_NEGATIVE = &H2
Const AW_VER_POSITIVE = &H4
Const AW_VER_NEGATIVE = &H8
Const AW_CENTER = &H10
Const AW_HIDE = &H10000
Const AW_ACTIVATE = &H20000
Const AW_SLIDE = &H40000
Const AW_BLEND = &H80000
Private Declare Function AnimateWindow Lib "user32" (ByVal hwnd As Long, ByVal dwTime As Long, ByVal dwFlags As Long) As Boolean

Private Sub Command1_Click()
  AnimateWindow Text1.hwnd, 1000, AW_HOR_POSITIVE       'Or AW_HIDE  1000يعني 1ثانيه طول بکشه
End Sub

Private Sub Command2_Click()
  AnimateWindow Text1.hwnd, 5000, AW_VER_POSITIVE Or AW_HIDE
End Sub

Private Sub Form_Load()
  Text1.Visible = False
  AnimateWindow Me.hwnd, 5000, AW_ACTIVATE 'or  AW_CENTER
AnimateWindow Me.hwnd, 5000, AW_VER_POSITIVE Or AW_HOR_NEGATIVE
  Me.Cls
End Sub

Private Sub Form_Unload(Cancel As Integer)
  AnimateWindow Me.hwnd, 2500, AW_VER_POSITIVE Or AW_HOR_NEGATIVE Or AW_HIDE
  Set Form1 = Nothing
End Sub


Back to top
arash
مدير بخش سي
مدير بخش سي


Joined: 27 Nov 2004
Posts: 1232
Location: www.parsx.com

PostPosted: Tue Sep 06, 2005 12:56 pm    Post subject: Reply with quote

امیر رقیب پیدا کردی ...
Back to top
unknown
مدير بخش ويژوال بيسيك
مدير بخش ويژوال بيسيك


Joined: 05 Dec 2004
Posts: 439
Location: Tehran

PostPosted: Tue Sep 06, 2005 11:36 pm    Post subject: Reply with quote

رقیب چیه آرش جان
ما اینجا جمع شدیم که دور هم یه چیزی یاد بگیریم
حالا هر کی بلد ما هم ازش یاد می گیریم.

ببخشید چند وقته سرم شلوغ شده
Back to top
sajadkk
مهمون يكي دو روزه


Joined: 11 Jul 2005
Posts: 18

PostPosted: Wed Sep 07, 2005 8:38 am    Post subject: Reply with quote

خواهش می کنم من از این سایت یه چیزایی یاد گرفتم
منم یه چیزایی بلدم که یواش یواش می فرستم
مخلصتونیم داداشا Wink
Back to top
vahid_ve
دوست آشناي سايت


Joined: 05 Feb 2006
Posts: 85

PostPosted: Thu Feb 09, 2006 7:01 am    Post subject: Re: ایجاد یک افکت روی فرم با استفاده از AnimateWindow Reply with quote

منم یک کد بلدم که بد نیست!

وسایل مورد نیاز

یک عدد تایمر


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 Const GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYERED = &H80000
Private Const LWA_ALPHA = &H2

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


Wink Wink Wink Wink Wink Wink Wink Wink Wink Wink Idea
Back to top
arash
مدير بخش سي
مدير بخش سي


Joined: 27 Nov 2004
Posts: 1232
Location: www.parsx.com

PostPosted: Thu Feb 09, 2006 10:21 pm    Post subject: Reply with quote

توضیح نداره
حداقل می گفتی چیه ؟
Back to top
unknown
مدير بخش ويژوال بيسيك
مدير بخش ويژوال بيسيك


Joined: 05 Dec 2004
Posts: 439
Location: Tehran

PostPosted: Fri Feb 10, 2006 2:21 am    Post subject: Reply with quote

یه افکت فرم هست.
and a nice way to exit...
Back to top
obtin_a
مهمون يكي دو روزه


Joined: 14 Aug 2006
Posts: 7

PostPosted: Tue Aug 15, 2006 8:21 pm    Post subject: Reply with quote

خيلي باهال بودن ميشه دوباره از ايم effect ها بزارين ,من كه تا حالا نتونستم تو اين site به كسي جيزي ياد بدم ,اميد وارم بتونم يه رزو مفيد واقع شم
Back to top
Display posts from previous:   
Post new topic   Reply to topic    ParsX.com Forum Index -> ويژوال بيسيك .NET All times are GMT + 3.5 Hours
Page 1 of 1

 
Jump to:  
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