Chuẩn bị cho thao tác nhả trên đối tượng nguồn

Một phần của tài liệu Giáo trình visual basic 6 phần II (Trang 72 - 74)

II. MỘT CHƯƠNG TRÌNH VÍ DỤ

2. Chuẩn bị cho thao tác nhả trên đối tượng nguồn

Khi hoạt động kéo đang xảy ra, Visual

i tượng mà mouse di chuyển ngang qua nó. Biến cố này nhận các tham ng DataObject và giá trị Eff

các thông tin này, người lập trình sẽ gán cho tham số

i hoạt động sẽ được thực hiện khi ngườ

effect có

Hằng Giá trị

0 vbDropEffectNone 1 vbDropEffectCopy

2 vbDropEffectMove &H80000000 vbDropEffectScroll

Giá trị cu ó ví dụ

khi m i chuyể ouse thanh cuộn củ . Tham số trạng thái

a giá trị xác định tr ái mouse đang di chuyển theo hướng vào hay i chuy ngang q có giá trị như sau:

Hằng Giá

ối cùng có ý nghĩa đối tượng đích sẽ cuộn nội dung bên trong n

ouse d n trên m a Listbox

(State) chứ ạng th ra khỏi hoặc d ển ua đối tượng và trị 0 vbEnter 1 2 er vbLeave vbOv Ví dụ sau làm thay đ ề

n As Integer, Shift As Integer, X As Single, Y As Single, State As Integer) ropEffectCopy

thay đổi màu nền ListBox khi kéo mouse ngang qua listbox. use ra khỏi Listbox rds.BackColor = vbWindowBackground

ền thành màu vàng khi di chuyển mouse vào Listbox lstWords.BackColor = vbYellow

m khi thực hiện thao tác sao chép trên đối tượng đí

Private Sub lstWords_OLEGive ong, _ DefaultCursors As Boolean)

' effect là Copy, sử dụng dạng con tr

ổi màu n n Listbox khi kéo mouse ngang qua Listbox

Private Sub lstWords_OLEDragOver(Data As DataObject, Effect As Long, Butto

If Data.GetFormat(vbCFText) Then Effect = Effect And vbD

Else

Effect = vbDropEffectNone End If

' Làm

If State = vbLeave Then

' Khôi phục màu nền khi di chuyển mo lstWo

ElseIf Effect <> 0 And State = vbEnter Then ' Đổi màu n

End If End Sub

Ngay sau biến cố OLEDragOver xảy ra trên đối tượng nguồn, Visual Basic kích hoạt tiếp biến cố OLEGiveFeedback trên đối tượng này để nhận biết hoạt động kéo tác động như thế nào đối với đối tượng đích để có thể thực hiện thao tác tương

ứng ví dụ dạng con trỏ mouse được thay đổi khác nhau với hoạt động sao chép hoặc di chuyển. Ví dụ sau thay đổi dạng con trỏ Custo

ch.

Feedback(Effect As L ỏ custom.

If Effect = vb opEffectCopy DefaultCu

DefaultCursors = True End If

End Sub

Cần lưu ý là nếu không cần thay đổi dạ thì không phải viết lệnh cho biến cố OLEGiveFeedback.

Khi ng OLED

tham s ường hợp này, tác dụng của tham số

Effect ó thể hiện hành vi được quyết

định tr ng đích.

Thủ tụ g biến cố OLEDragDrop trên Listbox.

b lstWords_OLEDragDrop(Data As DataObject, Effect As Long, box.

chuyển.

Then t = vbDropEffectMove

Ngay hoạt biến cố

OLEC ải viết lệnh trong biến cố này để hoàn tất

Dr Then

rsors = False

Screen.MousePointer = vbCustom

'Dạng con trỏ nạp trong đối tượng Image. Screen.MouseIcon = imgCopy.Picture Else

ng con trỏ

Một phần của tài liệu Giáo trình visual basic 6 phần II (Trang 72 - 74)

Tải bản đầy đủ (PDF)

(77 trang)