DKmouse_Ve` chuot
Chia sẻ bởi Trần Ngọc Vũ An |
Ngày 23/10/2018 |
40
Chia sẻ tài liệu: DKmouse_Ve` chuot thuộc Bài giảng khác
Nội dung tài liệu:
5/21/2010
Design: Nguyễn Hiền Du
1
Một số sự kiện cao cấp về chuột
bài giảng
Nội dung chính:
Các thủ tục sự kiện cơ bản (MouseDown,
MouseUp, MouseMove, MouseMove ..)
Các Hằng số của các nút chuột, Bàn phím
Kết hợp giưa bàn phím và chuột
Một số ví dụ về điều khiển chuột
5/21/2010
Design: Nguyễn Hiền Du
2
I. Các thủ tục sự kiện
Các thủ tục sự kiện cơ bản
- Diều khiển chỉ nhận ra sự kiện chuột khi trỏ chuột nằm trong điều khiển, còn lại biểu mẫu cơ sở nhận ra sự kiện chuột
Có 3 thủ tục sự kiện cơ bản về chuột như sau:
5/21/2010
Design: Nguyễn Hiền Du
3
Các thủ tục sự kiện chuột có cùng dạng và cùng tham số như sau:
ObjName_MouseEvent (Button As Integer, Shift As Integer, X As Single, Y As Single)
Trong dú:
ObjName: tờn d?i tu?ng c?n thao tỏc
MouseEvent: tờn th? t?c s? ki?n
Button: Nỳt chu?t no du?c nh?n
Shift: Phỏt hi?n xem cú dựng t? h?p phớm hay khụng
X,Y: To? d? c?a tr? chu?t
5/21/2010
Design: Nguyễn Hiền Du
4
Private Sub Form_MouseDown(button As Integer, Shift As Integer, X As Single, Y As Single)
CurrentX = X
CurrentY = Y
Print "Help Me"
End Sub
B. Để hiểu rõ hơn ta xét các ví dụ dưới đây:
Trong ví dụ trên mỗi lần ta nhấn chuột màn hình sẽ in ra câu “Help Me” tại toạ độ dòng X, cột Y.
5/21/2010
Design: Nguyễn Hiền Du
5
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Randomize
X = Int(2000 * Rnd)
Y = Int(2000 * Rnd)
CurrentX = X
CurrentY = Y
Print "Help me"
End Sub
Ví dụ dưới đây in ra màn hình dòng “Help me” tại toạ độ X, Y thuộc khoản [0,2000] mỗi khi ta thả nút chuột ra.
5/21/2010
Design: Nguyễn Hiền Du
6
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim A, B
A = CurrentX
B = CurrentY
CurrentX = X
CurrentY = Y
Line (A, B)-(X, Y)
End Sub
Ví dụ trên vẽ ra màn hình mỗi khi ta di chuyển chuột
5/21/2010
Design: Nguyễn Hiền Du
7
Lưu ý: nếu đối tượng là thành phần của một mảng điều khiển thì Index là tham số tuỳ chọn đầu tiên như sau:
ObjControlArray_MouseEvent(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
5/21/2010
Design: Nguyễn Hiền Du
8
C. Các tham số Button của chuột
Giả sử ta muốn vẽ một đường thẳng từ toạ độ hiện tại đến ví trí trỏ chuột khi ta kích chuột phải còn khi kích các nút chuột khác sẽ không thực hiên. để thực hiện được điều này ta phải điều khiển được các nút chuột
Bảng tham số nút chuột
5/21/2010
Design: Nguyễn Hiền Du
9
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim A, B As Integer
A = CurrentX
B = CurrentY
If Button = 1 Then
CurrentX = X
CurrentY = Y
Line (A, B)-(X, Y)
End If
End Sub
Ví dụ
5/21/2010
Design: Nguyễn Hiền Du
10
II. Tổ hợp phím và chuột
D? có thể phát hiện xem người dùng đã nhấn một trong các phím SHIFT, CTRL, ALT... trong khi ấn hoặc nhấn chuột. Mu?n phát hiện hành động này ta sử dụng tham số Shift trong thủ tục sự kiện MouseUp hay MouseDown.
Dưới đây là b?ng nêu các giá trị hằng của tham số Shift cho phép ta phát hiện các phím đặc biệt:
5/21/2010
Design: Nguyễn Hiền Du
11
5/21/2010
Design: Nguyễn Hiền Du
12
Ví dụ dưới đây sẽ vẽ đường thẳng từ vị trí hiện tại đến vị trí chuột khi ta ấn phím CTRL và kích phải chuột.
Private Sub Form_MouseDown(Button As Integer, shift As Integer, X As Single, Y As Single)
Dim A, B As Integer
A = CurrentX
B = CurrentY
Select Case shift
Case vbCtrlMask
If Button =vbLeftbutton Then
CurrentX = X
CurrentY = Y
Line (A, B)-(X, Y)
End If
End Select
End Sub
5/21/2010
Design: Nguyễn Hiền Du
13
III. Một số sự kiện khác
a. Kéo thả các điều khiển
Dể dời một điều khiển khi đang thiết kế, ta nhấn đè nút trái chuột, rồi dời trỏ chuột đến nơi muốn đặt điều khiển. Ta gọi quá trỡnh này là kéo (dragging).
Các điều khiển cho phép dùng hai kiểu kéo tương ứng với hai giá trị khác nhau của tính chất DragMode. Ngầm định là không cho phép ta kéo ứng với DragMode=0, được phép kéo ứng với DragMode=1. Sự kiện kéo th? được gọi là sự kiện DragDrop
5/21/2010
Design: Nguyễn Hiền Du
14
Ví dụ: đặt lên form một nút command1 và ta dùng thủ tục kéo thả nút lệnh trên form như sau:
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Command1.Move X, Y
End Sub
Luu ý: - Ta ph?i ấn định tính chất DragMode=1 của điều khiển vào thời gian thiết kế bằng cách lựa tính chất DragMode từ hộp Properties.
- N?u mu?n tr? chu?t bi?n hỡnh khi ta kộo th?, ta cú th? s? d?ng thu?c tớnh DragIcon trong c?a s? Properties
5/21/2010
Design: Nguyễn Hiền Du
15
b. Sự kiện DragOver
Sự kiện DragOver để tạo thêm kh? nang linh hoạt cho các đề án. Sự kiện này cho phép ta giám sát đường dẫn của điều khiển trong khi đang kéo. Dạng thủ tục sự kiện với Form là:
Private Sub Form_DragOver(Source As Control, X As Single, Y As Single, State As Integer)
Với các điều khiển, thủ tục sự kiện này có dạng như sau:
Private Sub CtrlName_DragOver([Index As Integer, ] Source As Control, X As Single, Y As Single, State As Integer)
5/21/2010
Design: Nguyễn Hiền Du
16
Trong dú: Source là điều khiển đang được kéo, nhưng thủ tục sự kiện được kết hợp với điều khiển đang được rê trên nó. Các tham số X và Y cho ta giá trị CurrentX và CurrentY. Tham số State có ba giá trị:
5/21/2010
Design: Nguyễn Hiền Du
17
B?ng dưới đây tóm tắt các sự kiện, phương pháp và tính chất dùng cho kỹ thuật kéo và th?.
5/21/2010
Design: Nguyễn Hiền Du
18
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.Move X, Y
End Sub
Private Sub Picture1_DragOver(Source As Control, X As Single, Y As Single, State As Integer)
Select Case State
Case vbEnter
Source.DragIcon = LoadPicture("D:Books04.ICO")
Case vbLeave
Source.DragIcon = LoadPicture()
End Select
End Sub
5/21/2010
Design: Nguyễn Hiền Du
19
Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single)
Source.DragIcon = LoadPicture() ` Unload icon.
End Sub
Design: Nguyễn Hiền Du
1
Một số sự kiện cao cấp về chuột
bài giảng
Nội dung chính:
Các thủ tục sự kiện cơ bản (MouseDown,
MouseUp, MouseMove, MouseMove ..)
Các Hằng số của các nút chuột, Bàn phím
Kết hợp giưa bàn phím và chuột
Một số ví dụ về điều khiển chuột
5/21/2010
Design: Nguyễn Hiền Du
2
I. Các thủ tục sự kiện
Các thủ tục sự kiện cơ bản
- Diều khiển chỉ nhận ra sự kiện chuột khi trỏ chuột nằm trong điều khiển, còn lại biểu mẫu cơ sở nhận ra sự kiện chuột
Có 3 thủ tục sự kiện cơ bản về chuột như sau:
5/21/2010
Design: Nguyễn Hiền Du
3
Các thủ tục sự kiện chuột có cùng dạng và cùng tham số như sau:
ObjName_MouseEvent (Button As Integer, Shift As Integer, X As Single, Y As Single)
Trong dú:
ObjName: tờn d?i tu?ng c?n thao tỏc
MouseEvent: tờn th? t?c s? ki?n
Button: Nỳt chu?t no du?c nh?n
Shift: Phỏt hi?n xem cú dựng t? h?p phớm hay khụng
X,Y: To? d? c?a tr? chu?t
5/21/2010
Design: Nguyễn Hiền Du
4
Private Sub Form_MouseDown(button As Integer, Shift As Integer, X As Single, Y As Single)
CurrentX = X
CurrentY = Y
Print "Help Me"
End Sub
B. Để hiểu rõ hơn ta xét các ví dụ dưới đây:
Trong ví dụ trên mỗi lần ta nhấn chuột màn hình sẽ in ra câu “Help Me” tại toạ độ dòng X, cột Y.
5/21/2010
Design: Nguyễn Hiền Du
5
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Randomize
X = Int(2000 * Rnd)
Y = Int(2000 * Rnd)
CurrentX = X
CurrentY = Y
Print "Help me"
End Sub
Ví dụ dưới đây in ra màn hình dòng “Help me” tại toạ độ X, Y thuộc khoản [0,2000] mỗi khi ta thả nút chuột ra.
5/21/2010
Design: Nguyễn Hiền Du
6
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim A, B
A = CurrentX
B = CurrentY
CurrentX = X
CurrentY = Y
Line (A, B)-(X, Y)
End Sub
Ví dụ trên vẽ ra màn hình mỗi khi ta di chuyển chuột
5/21/2010
Design: Nguyễn Hiền Du
7
Lưu ý: nếu đối tượng là thành phần của một mảng điều khiển thì Index là tham số tuỳ chọn đầu tiên như sau:
ObjControlArray_MouseEvent(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
5/21/2010
Design: Nguyễn Hiền Du
8
C. Các tham số Button của chuột
Giả sử ta muốn vẽ một đường thẳng từ toạ độ hiện tại đến ví trí trỏ chuột khi ta kích chuột phải còn khi kích các nút chuột khác sẽ không thực hiên. để thực hiện được điều này ta phải điều khiển được các nút chuột
Bảng tham số nút chuột
5/21/2010
Design: Nguyễn Hiền Du
9
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim A, B As Integer
A = CurrentX
B = CurrentY
If Button = 1 Then
CurrentX = X
CurrentY = Y
Line (A, B)-(X, Y)
End If
End Sub
Ví dụ
5/21/2010
Design: Nguyễn Hiền Du
10
II. Tổ hợp phím và chuột
D? có thể phát hiện xem người dùng đã nhấn một trong các phím SHIFT, CTRL, ALT... trong khi ấn hoặc nhấn chuột. Mu?n phát hiện hành động này ta sử dụng tham số Shift trong thủ tục sự kiện MouseUp hay MouseDown.
Dưới đây là b?ng nêu các giá trị hằng của tham số Shift cho phép ta phát hiện các phím đặc biệt:
5/21/2010
Design: Nguyễn Hiền Du
11
5/21/2010
Design: Nguyễn Hiền Du
12
Ví dụ dưới đây sẽ vẽ đường thẳng từ vị trí hiện tại đến vị trí chuột khi ta ấn phím CTRL và kích phải chuột.
Private Sub Form_MouseDown(Button As Integer, shift As Integer, X As Single, Y As Single)
Dim A, B As Integer
A = CurrentX
B = CurrentY
Select Case shift
Case vbCtrlMask
If Button =vbLeftbutton Then
CurrentX = X
CurrentY = Y
Line (A, B)-(X, Y)
End If
End Select
End Sub
5/21/2010
Design: Nguyễn Hiền Du
13
III. Một số sự kiện khác
a. Kéo thả các điều khiển
Dể dời một điều khiển khi đang thiết kế, ta nhấn đè nút trái chuột, rồi dời trỏ chuột đến nơi muốn đặt điều khiển. Ta gọi quá trỡnh này là kéo (dragging).
Các điều khiển cho phép dùng hai kiểu kéo tương ứng với hai giá trị khác nhau của tính chất DragMode. Ngầm định là không cho phép ta kéo ứng với DragMode=0, được phép kéo ứng với DragMode=1. Sự kiện kéo th? được gọi là sự kiện DragDrop
5/21/2010
Design: Nguyễn Hiền Du
14
Ví dụ: đặt lên form một nút command1 và ta dùng thủ tục kéo thả nút lệnh trên form như sau:
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Command1.Move X, Y
End Sub
Luu ý: - Ta ph?i ấn định tính chất DragMode=1 của điều khiển vào thời gian thiết kế bằng cách lựa tính chất DragMode từ hộp Properties.
- N?u mu?n tr? chu?t bi?n hỡnh khi ta kộo th?, ta cú th? s? d?ng thu?c tớnh DragIcon trong c?a s? Properties
5/21/2010
Design: Nguyễn Hiền Du
15
b. Sự kiện DragOver
Sự kiện DragOver để tạo thêm kh? nang linh hoạt cho các đề án. Sự kiện này cho phép ta giám sát đường dẫn của điều khiển trong khi đang kéo. Dạng thủ tục sự kiện với Form là:
Private Sub Form_DragOver(Source As Control, X As Single, Y As Single, State As Integer)
Với các điều khiển, thủ tục sự kiện này có dạng như sau:
Private Sub CtrlName_DragOver([Index As Integer, ] Source As Control, X As Single, Y As Single, State As Integer)
5/21/2010
Design: Nguyễn Hiền Du
16
Trong dú: Source là điều khiển đang được kéo, nhưng thủ tục sự kiện được kết hợp với điều khiển đang được rê trên nó. Các tham số X và Y cho ta giá trị CurrentX và CurrentY. Tham số State có ba giá trị:
5/21/2010
Design: Nguyễn Hiền Du
17
B?ng dưới đây tóm tắt các sự kiện, phương pháp và tính chất dùng cho kỹ thuật kéo và th?.
5/21/2010
Design: Nguyễn Hiền Du
18
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.Move X, Y
End Sub
Private Sub Picture1_DragOver(Source As Control, X As Single, Y As Single, State As Integer)
Select Case State
Case vbEnter
Source.DragIcon = LoadPicture("D:Books04.ICO")
Case vbLeave
Source.DragIcon = LoadPicture()
End Select
End Sub
5/21/2010
Design: Nguyễn Hiền Du
19
Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single)
Source.DragIcon = LoadPicture() ` Unload icon.
End Sub
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Trần Ngọc Vũ An
Dung lượng: |
Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)