Tentang Carets

Sistem menyediakan satu tanda sisipan per antrean pesan. Jendela harus membuat tanda sisipan hanya ketika memiliki fokus keyboard atau aktif. Jendela harus menghancurkan tanda sisipan sebelum kehilangan fokus keyboard atau menjadi tidak aktif. Untuk informasi selengkapnya tentang input keyboard, lihat Input Keyboard.

Gunakan fungsi CreateCaret untuk menentukan parameter untuk tanda sisipan. Sistem membentuk tanda sisipan dengan membalikkan warna piksel dalam persegi panjang yang ditentukan oleh posisi, lebar, dan tinggi tanda sisipan. Lebar dan tinggi ditentukan dalam unit logis; oleh karena itu, tampilan tanda sisipan tunduk pada mode pemetaan jendela.

Topik berikut dibahas di bagian ini.

Visibilitas Caret

Setelah tanda sisipan ditentukan, gunakan fungsi ShowCaret untuk membuat tanda sisipan terlihat. Ketika caret muncul, secara otomatis mulai berkedip. Untuk menampilkan caret solid, sistem akan menginversi setiap piksel dalam persegi panjang; untuk menampilkan caret abu-abu, sistem menginversi setiap piksel lainnya; untuk menampilkan tanda sisipan bitmap, sistem hanya menginversi bit putih bitmap.

Waktu yang berlalu, dalam milidetik, yang diperlukan untuk membalikkan tanda sisipan disebut waktu blink. Tanda sisipan akan berkedip selama utas yang memiliki antrean pesan memiliki pompa pesan yang memproses pesan.

Pengguna dapat mengatur waktu blink caret menggunakan Panel Kontrol dan aplikasi harus mematuhi pengaturan yang telah dipilih pengguna. Aplikasi dapat menentukan waktu blink caret dengan menggunakan fungsi GetCaretBlinkTime . Jika Anda menulis aplikasi yang memungkinkan pengguna untuk menyesuaikan waktu blink, seperti applet Panel Kontrol, gunakan fungsi SetCaretBlinkTime untuk mengatur laju waktu blink ke jumlah milidetik yang ditentukan.

Waktu lampu kilat adalah waktu yang berlalu, dalam milidetik, diperlukan untuk menampilkan, membalik, dan memulihkan tampilan tanda sisipan. Waktu flash caret dua kali lebih banyak daripada waktu blink.

Posisi Karir

Anda dapat menentukan posisi tanda sisipan menggunakan fungsi GetCaretPos . Posisi, dalam koordinat klien, disalin ke struktur yang ditentukan oleh parameter di GetCaretPos. Aplikasi dapat memindahkan tanda sisipan di jendela dengan menggunakan fungsi SetCaretPos . Jendela dapat memindahkan tanda sisipan hanya jika sudah memiliki tanda sisipan. SetCaretPos dapat memindahkan tanda sisipan apakah terlihat atau tidak.

Menghapus Caret

Anda dapat menghapus tanda sisipan untuk sementara dengan menyembunyikannya, atau Anda dapat menghapus tanda sisipan secara permanen dengan menghancurkannya. Untuk menyembunyikan tanda sisipan, gunakan fungsi HideCaret . Ini berguna ketika aplikasi Anda harus menggambar ulang layar saat memproses pesan, tetapi harus menjauhkan diri dari jalan. Ketika aplikasi selesai menggambar, aplikasi dapat menampilkan tanda sisipan lagi dengan menggunakan fungsi ShowCaret . Menyembunyikan tanda sisipan tidak menghancurkan bentuknya atau membatalkan titik penyisipan. Menyembunyikan tanda sisipan bersifat kumulatif; artinya, jika aplikasi memanggil HideCaret lima kali, aplikasi juga harus memanggil ShowCaret lima kali sebelum tanda sisipan akan muncul kembali.

Untuk menghapus tanda sisipan dari layar dan menghancurkan bentuknya, gunakan menggunakan fungsi DestroyCaret . DestroyCaret menghancurkan tanda sisipan hanya jika jendela yang terlibat dalam tugas saat ini memiliki tanda sisipan.