Bagikan melalui


Menyeret Gambar dari Daftar Gambar

CImageList menyertakan fungsi untuk menyeret gambar di layar. Fungsi menyeret memindahkan gambar dengan halus, dalam warna, dan tanpa kedipan kursor sama sekali. Gambar yang ditutupi dan tidak ditutupi dapat diseret.

Fungsi anggota BeginDrag memulai operasi tarik. Parameter termasuk indeks gambar yang akan diseret dan lokasi hot spot dalam gambar. Titik hotspot adalah satu piksel yang dikenali oleh fungsi penyeretan sebagai lokasi tepat gambar pada layar. Biasanya, aplikasi mengatur hot spot sehingga bertepatan dengan hot spot kursor mouse. Fungsi anggota DragMove memindahkan gambar ke lokasi baru.

Fungsi anggota DragEnter mengatur posisi awal gambar seret di dalam jendela dan menggambar gambar pada posisi tersebut. Parameter mencakup penunjuk ke jendela untuk menggambar gambar dan titik yang menentukan koordinat posisi awal di dalam jendela. Koordinat relatif terhadap sudut kiri atas jendela, bukan area klien. Hal yang sama berlaku untuk semua fungsi penyeretan gambar yang mengambil koordinat sebagai parameter. Ini berarti Anda harus mengimbangi lebar elemen jendela, seperti batas, bilah judul, dan bilah menu, saat menentukan koordinat. Jika Anda menentukan handle jendela NULL saat memanggil DragEnter, fungsi menyeret menggambar gambar pada konteks perangkat yang terhubung dengan jendela desktop, dan koordinat relatif terhadap sudut kiri atas layar.

DragEnter menghentikan semua pembaruan lainnya ke jendela yang diberikan selama operasi seret. Jika Anda perlu melakukan penggambaran selama operasi seret, seperti menyoroti target dari operasi seret dan lepas, Anda dapat menyembunyikan gambar yang diseret untuk sementara waktu dengan menggunakan fungsi anggota DragLeave. Anda juga dapat menggunakan fungsi anggota DragShowNoLock.

Panggil EndDrag saat Anda selesai menyeret gambar.

Fungsi anggota SetDragCursorImage membuat gambar seret baru dengan menggabungkan gambar tertentu (biasanya gambar kursor mouse) dengan gambar seret saat ini. Karena fungsi penyeretan menggunakan gambar baru selama operasi seret, Anda harus menggunakan fungsi Windows ShowCursor untuk menyembunyikan kursor mouse aktual setelah memanggil SetDragCursorImage. Jika tidak, sistem mungkin tampak memiliki dua kursor mouse selama operasi seret berlangsung.

Saat aplikasi memanggil BeginDrag, sistem membuat daftar gambar internal sementara dan menyalin gambar seret yang ditentukan ke daftar internal. Anda dapat mengambil penunjuk ke daftar gambar seret sementara dengan menggunakan fungsi anggota GetDragImage . Fungsi ini juga memperoleh posisi drag terkini dan offset gambar drag relatif terhadap posisi drag.

Lihat juga

Menggunakan CImageList
Kontrol