Friday, October 01, 2004

Hieu Ung Form trong VisualBasic 6


Là dân lập trình VB6 chắc hẳn bạn rất thích thú những chức năng dễ sử dụng của nó ví dụ như kéo và thả các đối tượng... Nhưng chắc cũng không ít lần bạn đau đầu khi tìm hiểu những hàm API phục vụ cho thiết kế giao diện form. Trong bài viết này, tôi sẽ giới thiệu đến các bạn hàm API 'AnimateWindow' dùng để tạo các hiệu ứng đặc biệt cho form.Hàm AnimateWindow được chứa trong thư viện user32.dll. Để sử dụng hàm API này, trước tiên bạn phải khai báo:
Private Declare Function AnimateWindow Lib 'user32' (ByVal hwnd As Long, ByVal dwTime As Long, ByVal dwFlags As Long) As Boolean
Câu lệnh gọi hàm AnimateWindows như sau:AnimateWindow hWnd, dwTime, dwFlags
Chi tiết từng chức năng của câu lệnh:o HWnd: cửa sổ tạo hiệu ứng.o dwTime: thời gian tạo hiệu ứng (millisecond). o dwFlags: loại của hiệu ứng. dwFlag có thể nhận một (hoặc nhiều) trong các giá trị sau.o &H20000: làm form trở nên 'active' (kích hoạt)o &H80000: hiệu ứng 'fade' (hiện từ mờ rồi dần trở nên rỏ). Chỉ được sử dụng khi hWnd là cửa sổ onTop.o &H10: hiệu ứng tỏa từ giữa form ra ngoài. o &H1: hiệu ứng làm form xuất hiện từ trái sang phải.o &H2: hiệu ứng làm form xuất hiện từ phải sang trái.(&H1, &H2 không dùng chung được với &H10 or &H80000).o &H4 : hiệu ứng làm form xuất hiện từ trên xuống dưới.o &H8 : hiệu ứng làm form xuất hiện từ dưới lên trên.
Dưới đây là chương trình tạo hiệu ứng cho form dùng hàm API trên.
Tạo một project Standard EXE, tạo form đặt tên là frmOptions với các đối tượng như hình 1 (1 frame, 6 OptionButton, 1 Label, 1 TextBox, 1 CommandButton), nhập đoạn code sau:
Option Explicit
Private Sub Command1_Click()
'Thoát khỏi form trong trường hợp form đã được load
Unload frmDemo
'Dừng chương trình 0.2 millisecond
Pause (0.2)
Load frmDemo
frmDemo.SetFocus
End Sub
Sub Pause(Interval)
Dim Current
Current = Timer
Do While Timer - Current < startupeffect =" &H1" startupeffect =" &H2" startupeffect =" &H4" startupeffect =" &H8" startupeffect =" &H10" startupeffect =" &H80000"> '' Then
'Tạo hiệu ứng cho form
AnimateWindow Me.hwnd, frmOptions.Text1.Text, StartUpEffect
DoEvents
Me.refresh
Else
MsgBox 'Please enter a valid number!', , 'Error'
End If
Exit Sub
starterr:
MsgBox 'Please select an effect!', , 'Error'
End Sub
Gán frmOptions làm form khởi chạy đầu tiên (Project Properties->Startup Object). Xong, bạn hãy chạy chương trình để thưởng thức những hiệu ứng form đẹp mắt.ÿ

0 Comments:

Post a Comment

<< Home