Bài giảng Một số sự kiện cao cấp về chuột

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

 

ppt19 trang | Chia sẻ: gaobeo18 | Lượt xem: 1180 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Một số sự kiện cao cấp về chuột, để tải tài liệu về máy bạn click vào nút TẢI VỀ ở trên
Một số sự kiện cao cấp về chuột bài giảngNộ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ộtDate1Design: Nguyễn Hiền DuI. Các thủ tục sự kiệnCỏc thủ tục sự kiện cơ bảnTên thủ tụcý nghĩaMouseDownNgười dùng nhắp một trong các nút chuộtMouseUpNgười dựng nhả một nỳt chuộtMouseMoveNgười dùng dời trỏ chuột đến điều khiển hoặc đến một vùng trắng của biểu mẫu- Điề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:Date2Design: Nguyễn Hiền DuCá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 đú:ObjName: tờn đối tượng cần thao tỏcMouseEvent: tờn thủ tục sự kiệnButton: Nỳt chuột nào được nhấnShift: Phỏt hiện xem cú dựng tổ hợp phớm hay khụngX,Y: Toạ độ của trỏ chuộtDate3Design: Nguyễn Hiền DuPrivate Sub Form_MouseDown(button As Integer, Shift As Integer, X As Single, Y As Single)CurrentX = XCurrentY = YPrint “Help Me”End SubB. Để 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.Date4Design: Nguyễn Hiền DuPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)RandomizeX = Int(2000 * Rnd)Y = Int(2000 * Rnd)CurrentX = XCurrentY = YPrint “Help me"End SubVớ 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. Date5Design: Nguyễn Hiền DuPrivate 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 SubVớ dụ trờn vẽ ra màn hỡnh mỗi khi ta di chuyển chuộtDate6Design: Nguyễn Hiền DuLư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)Date7Design: Nguyễn Hiền DuC. Cỏc tham số Button của chuộtNỳtHằngGiỏ trị sốTrỏivbLeftButton1PhảivbRightButton2GiữavbMidleButton4Giả 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ộtBảng tham số nỳt chuộtDate8Design: Nguyễn Hiền DuPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Dim A, B As Integer A = CurrentX B = CurrentYIf Button = 1 Then CurrentX = X CurrentY = Y Line (A, B)-(X, Y)End IfEnd SubVớ dụDate9Design: Nguyễn Hiền DuII. Tổ hợp phớm và chuộtĐể 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: Date10Design: Nguyễn Hiền DuHành độngHằngNhấn đè SHIFTVbShiftMaskNhấn đè CTRLVbCtrlMaskNhấn đè ALTVbAltMaskNhấn đè SHIFT+CTRLvbShiftMask+vbCtrlMaskNhấn đè SHIFT+ALTvbShiftMask+vbAltMaskNhấn đè CTRL+ALTvbCtrlMask+vbAltMaskNhấn đè SHIFT+CTRL+ALTvbShiftMask+vbCtrlMask+vbAltMaskDate11Design: Nguyễn Hiền DuVớ 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 = CurrentYSelect Case shiftCase vbCtrlMaskIf Button =vbLeftbutton ThenCurrentX = XCurrentY = YLine (A, B)-(X, Y)End IfEnd SelectEnd SubDate12Design: Nguyễn Hiền DuIII. Một số sự kiện khỏca. Kộo thả cỏc điều khiểnĐể 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 Date13Design: Nguyễn Hiền DuVớ 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, YEnd SubLưu ý: - 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ổ PropertiesDate14Design: Nguyễn Hiền Dub. Sự kiện DragOver Sự kiện DragOver để tạo thêm khả năng 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) Date15Design: Nguyễn Hiền DuTrong đú: 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ị:Giá trị của tham số StateMô tả0Nguồn giờ đây nằm trong đích1Nguồn nằm ngay bên trái đích2Nguồn được dời vào trong đíchDate16Design: Nguyễn Hiền DuBả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ả.MụcMô tảTính chất DragModeCho phép kéo tự động (giá trị = 1) hoặc kéo thủ công (giá trị = 0)Tính chất DragIconấn định tính chất này để thay đổi từ hỡnh chữ nhật xám sang biểu tượng tuỳ biến khi kéoSự kiện DragDropđối tượng được kéo thả lên điều khiển đíchSự kiện DragOverKết hợp với bất kỳ điều khiển nào mà điều khiển nguồn di chuyển lên trên đó trong khi kéoPhương pháp DragBắt đầu hoặc ngưng kéo khi DragMode được ấn định là thủ côngDate17Design: Nguyễn Hiền DuPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Text1.Move X, YEnd SubPrivate 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 SelectEnd SubDate18Design: Nguyễn Hiền DuPrivate Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single) Source.DragIcon = LoadPicture() ' Unload icon.End SubDate19Design: Nguyễn Hiền Du

File đính kèm:

  • pptDKmouseVe chuot.ppt