Metode IDropTarget::D ragOver (oleidl.h)

Memberikan umpan balik target kepada pengguna dan mengkomunikasikan efek drop ke fungsi DoDragDrop sehingga dapat mengkomunikasikan efek dropback ke sumber.

Sintaks

HRESULT DragOver(
  [in]      DWORD  grfKeyState,
  [in]      POINTL pt,
  [in, out] DWORD  *pdwEffect
);

Parameter

[in] grfKeyState

Status tombol pengubah papan ketik saat ini pada papan ketik. Nilai yang valid dapat berupa kombinasi dari salah satu bendera MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON, dan MK_RBUTTON.

[in] pt

Struktur POINTL yang berisi koordinat kursor saat ini dalam koordinat layar.

[in, out] pdwEffect

Pada input, arahkan ke nilai parameter pdwEffect dari fungsi DoDragDrop . Saat kembali, harus berisi salah satu bendera DROPEFFECT , yang menunjukkan hasil operasi penghilangan.

Nilai kembali

Metode ini mengembalikan S_OK pada keberhasilan. Nilai lain yang mungkin termasuk yang berikut ini.

Menampilkan kode Deskripsi
E_UNEXPECTED
Terjadi kesalahan tidak terduga.
E_INVALIDARG
Nilai pdwEffect tidak valid.
E_OUTOFMEMORY
Tidak tersedia cukup memori untuk operasi ini.

Keterangan

Anda tidak memanggil DragOver secara langsung. Fungsi DoDragDrop memanggil metode ini setiap kali pengguna memindahkan mouse di seluruh jendela target tertentu. DoDragDrop keluar dari perulangan jika operasi seret dan letakkan dibatalkan, jika pengguna menyeret mouse keluar dari jendela target, atau jika penghilangan selesai.

Dalam menerapkan IDropTarget::D ragOver, Anda harus menyediakan fitur yang mirip dengan yang ada di IDropTarget::D ragEnter. Anda harus menentukan efek menghilangkan data pada target dengan memeriksa FORMATETC yang menentukan format dan media objek data, bersama dengan status kunci pengubah. Posisi mouse juga dapat berperan dalam menentukan efek penurunan. Tombol pengubah berikut memengaruhi hasil penurunan.

Kombinasi Kunci umpan balik User-Visible Efek Jatuhkan
CTRL + SHIFT = DROPEFFECT_LINK
CTRL + DROPEFFECT_COPY
Tidak ada kunci atau SHIFT Tidak ada DROPEFFECT_MOVE
 

Anda mengomunikasikan efek dropback ke sumber melalui DoDragDrop di pdwEffect. Fungsi DoDragDrop kemudian memanggil IDropSource::GiveFeedback sehingga aplikasi sumber dapat menampilkan umpan balik visual yang sesuai kepada pengguna.

Pada entri ke IDropTarget::D ragOver, parameter pdwEffect harus diatur ke efek yang diizinkan yang diteruskan ke parameter pdwOkEffect dari fungsi DoDragDrop . Metode IDropTarget::D ragOver harus dapat memilih salah satu efek ini atau menonaktifkan penurunan.

Setelah kembali, pdwEffect diatur ke salah satu bendera DROPEFFECT. Nilai ini kemudian diteruskan ke parameter pdwEffect dari DoDragDrop. Nilai yang wajar DROPEFFECT_COPY untuk menyalin data yang diseret ke target, DROPEFFECT_LINK untuk membuat tautan ke data sumber, atau DROPEFFECT_MOVE untuk memungkinkan data yang diseret dipindahkan secara permanen dari aplikasi sumber ke target.

Anda mungkin juga ingin memberikan umpan balik visual yang sesuai di jendela target. Mungkin ada beberapa umpan balik target yang sudah ditampilkan dari panggilan sebelumnya ke IDropTarget::D ragOver atau dari IDropTarget::D ragEnter awal. Jika umpan balik ini tidak lagi sesuai, Anda harus menghapusnya.

Untuk alasan efisiensi, objek data tidak diteruskan di IDropTarget::D ragOver. Objek data yang diteruskan dalam panggilan terbaru ke IDropTarget::D ragEnter tersedia dan dapat digunakan.

Ketika IDropTarget::D ragOver telah menyelesaikan operasinya, fungsi DoDragDrop memanggil IDropSource::GiveFeedback sehingga aplikasi sumber dapat menampilkan umpan balik visual yang sesuai kepada pengguna.

Catatan untuk Pelaksana

Fungsi ini sering dipanggil selama perulangan DoDragDrop sehingga masuk akal untuk mengoptimalkan implementasi metode DragOver Anda sebanyak mungkin.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header oleidl.h

Lihat juga

DoDragDrop

IDropSource

IDropSourceNotify

IDropTarget

RegisterDragDrop

MencabutDragDrop