0

آموزش ساخت Splash در ویژوال بیسیک

 
mehdigerdali
mehdigerdali
کاربر طلایی1
تاریخ عضویت : خرداد 1390 
تعداد پست ها : 5587
محل سکونت : خوزستان

آموزش ساخت Splash در ویژوال بیسیک

 

Splash چیست؟
Splash صفحه ای است که به هنگام شروع به اجرای اکثر برنامه های کاربردی برای مدت زمان اندکی نمایش داده میشود و در آن توضیحاتی از قبیل نام برنامه یا برنامه نویسان ورژن برنامه و … در آن نمایش داده می شود که اغلب به صورت گرافیکی می باشد. امروز قصد دارم شما را با طریقه ساخت یک Splash در ویژوال بیسیک آشنا کنم . تا از این پس در برنامه های خودتون از یک Splash بتوانید استفاده کنید. در ادامه مطلب می توانید مقالات را مطالعه کنید.

 

می خواهم چگونگی ساخت یک Splash Screen برای برنامه هایی که مینویسیم را براتون شرح بدم . خوب باز هم باید توابع مورد نیاز را فراخوانی کرده و همچنین ثوایت مورد نیاز را تعریف کنیم
[vb]Const LWA_COLORKEY = &H1
Const LWA_ALPHA = &H2
Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED = &H80000
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 [/vb]

نوع نمایش این Splash Screen به گونه ای است که میزان شفافیت فرم آن از ۰ به ۲۵۵ رسیده و دوباره کاهش یافته به صفر می رسد (یا بعبارت دیگر از حالت نامرئی به شفافیت کامل رسیده و دوباره از شفافیت آن کاسته شده و نامرئی می شود ) . خوب تنها Control که برای این برنامه نیاز داریمTimer می باشد . کدی که در Form_Load می بینید باعث می شود که فرم در ابتدای امر نامرئی باشد چون مقدار bAlfa آنرا ۰ داده ام

Private Sub Form_Load()

Dim Ret As Long
‘Set the window style to ‘Layered’
Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
Ret = Ret Or WS_EX_LAYERED
SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret

‘SetLayeredWindowAttributes Me.hWnd,0,(0-255),LWA_ALPHA
SetLayeredWindowAttributes Me.hWnd,0,0,LWA_ALPHA

Timer1.interval = 1
End
End Sub

در مرحله بعد برای اینکه فرم از حالت نامرئی به مرئی برسد (یعنی مقدار آن از ۰ به ۲۵۵ برسد) یک حلقه For نوشتم . حال برای اینکه فرم دوباره از حالت مرئی به نامرئی برشد یک حلقه For دیگر با گام افزایش -۱ نوشتم تا مقدار آنرا کاهش دهد .

Private Sub Timer1_Timer()

For i = 1 To 255
SetLayeredWindowAttributes Me.hWnd,0,CByte(i),LWA_ALPHA
Next i

For i = 255 To 1 Step -1
SetLayeredWindowAttributes Me.hWnd,0,CByte(i),LWA_ALPHA
Next i

Timer1.Enabled = False

End Sub

(*) یک نکته : این برنامه در سیستم عاملهای windows 2000 به بعد قابل اجراست , زیرا توابع مورد استفاده در این برنامه در ویندوزهای ۹۸ و ۹۵ وجود ندارد .

***به بهشت نمی روم اگر مــــــادرم آنجا نباشد***

آنگاه که تنها شدی و در جست جوی یک تکیه گاه مطمئن هستی ، بر من توکل نما . نمل/79

 

دوشنبه 20 تیر 1390  7:37 PM
تشکرات از این پست
AliFanoodi
دسترسی سریع به انجمن ها