Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Trackbar adalah jendela yang berisi penggeser (kadang-kadang disebut penunjuk) di saluran, dan tanda centang opsional. Saat pengguna memindahkan slider, menggunakan mouse atau tombol arah, trackbar mengirim pesan pemberitahuan untuk menunjukkan perubahan.
- Rentang Pilihan
- Pesan Trackbar
- Pesan Pemberitahuan Trackbar
- Pemrosesan Pesan Trackbar Bawaan
- Tooltip Trackbar
Trackbar berguna saat Anda ingin pengguna memilih nilai bilangan bulat yang tidak ditandatangani secara diskrit atau sekumpulan nilai bilangan bulat yang tidak ditandatangani berturut-turut dalam rentang. Misalnya, Anda mungkin menggunakan trackbar untuk memungkinkan pengguna mengatur laju pengulangan keyboard dengan memindahkan pengguncur ke tanda centang tertentu. Ilustrasi berikut menunjukkan trackbar biasa.
lambat dan cepat
Slider di trackbar bergerak dengan kenaikan yang Anda tentukan saat membuatnya. Nilai dalam rentang ini disebut sebagai unit logis. Misalnya, jika Anda menentukan bahwa trackbar harus memiliki unit logis yang berkisar dari 0 hingga 5, slider hanya dapat menempati enam posisi: posisi di sisi kiri trackbar dan satu posisi untuk setiap kenaikan dalam rentang. Biasanya, masing-masing posisi ini diidentifikasi oleh tanda centang; namun, jumlah tanda centang bersifat arbitrer dan bisa lebih sedikit dari jumlah posisi logis.
Anda membuat trackbar dengan menggunakan fungsiCreateWindowEx, menentukan kelas jendela TRACKBAR_CLASS. Setelah membuat trackbar, Anda dapat menggunakan pesan trackbar untuk mengatur dan mengambil banyak propertinya. Perubahan yang bisa Anda lakukan antara lain mengatur posisi minimum dan maksimum untuk penggeser, menggambar penanda, mengatur rentang seleksi, dan memposisikan ulang penggeser.
Rentang Pilihan
Jika Anda membuat trackbar dengan gaya TBS_ENABLESELRANGE, Anda dapat menentukan rentang pilihan. Trackbar menyoroti rentang pilihan dan menampilkan tanda centang segitiga di awal dan akhir, seperti yang ditunjukkan pada ilustrasi berikut.
Rentang pilihan trackbar tidak memengaruhi fungsionalitasnya dengan cara apa pun. Terserah aplikasi untuk mengimplementasikan rentang. Anda mungkin melakukan ini dengan salah satu cara berikut:
- Gunakan rentang pilihan untuk memungkinkan pengguna mengatur nilai maksimum dan minimum untuk beberapa parameter. Misalnya, pengguna dapat memindahkan slider ke posisi lalu mengklik tombol berlabel "Maks". Aplikasi kemudian mengatur rentang pilihan untuk menampilkan nilai yang dipilih oleh pengguna.
- Batasi pergerakan slider ke subrange yang telah ditentukan sebelumnya dalam kontrol, dengan menangani pemberitahuan WM_HSCROLL atau WM_VSCROLL dan mencegah gerakan di luar rentang pilihan. Anda dapat melakukan ini, misalnya, jika rentang nilai yang tersedia untuk pengguna dapat berubah karena pilihan lain yang telah dibuat pengguna, atau sesuai dengan sumber daya yang tersedia.
Pesan Trackbar
Unit logis dari trackbar adalah sekumpulan nilai yang bersebelahan yang dapat diwakili oleh trackbar. Mereka biasanya didefinisikan dengan menentukan rentang nilai yang mungkin dengan pesan TBM_SETRANGE segera setelah trackbar dibuat. Aplikasi dapat mengubah rentang secara dinamis dengan menggunakan TBM_SETRANGE, TBM_SETRANGEMAX, atau TBM_SETRANGEMIN.
Untuk mengambil posisi slider (yaitu, nilai yang dipilih pengguna), gunakan pesan TBM_GETPOS. Untuk mengatur posisi slider, gunakan pesan TBM_SETPOS.
Trackbar secara otomatis menampilkan tanda centang di awal dan akhirnya, kecuali Anda menentukan gaya TBS_NOTICKS. (Di editor sumber daya Microsoft Visual Studio, ini berarti mengatur properti Tanda Centang ke False.) Anda dapat menggunakan gaya TBS_AUTOTICKS untuk menampilkan tanda centang tambahan secara otomatis secara berkala di sepanjang trackbar. Secara default, trackbar TBS_AUTOTICKS menampilkan tanda centang pada setiap kenaikan rentang trackbar. Untuk menentukan interval yang berbeda untuk tanda centang otomatis, kirim pesan TBM_SETTICFREQ ke trackbar. Misalnya, Anda dapat menggunakan pesan ini untuk menampilkan hanya 10 tanda centang dalam rentang 1 hingga 100.
Untuk mengatur posisi tanda centang tunggal, kirim pesan TBM_SETTIC. Trackbar mempertahankan array nilai DWORD yang menyimpan posisi setiap tanda centang. Array tidak menyertakan tanda centang pertama dan terakhir, yang dibuat trackbar secara otomatis. Anda dapat menentukan indeks dalam array ini saat mengirim pesan TBM_GETTIC untuk mengambil posisi tanda centang yang sesuai. Atau, Anda dapat mengirim pesan TBM_GETPTICS untuk mengambil penunjuk ke array. Jumlah elemen dalam array sama dengan dua kurang dari jumlah centang yang dikembalikan oleh pesan TBM_GETNUMTICS. Ini karena jumlah yang dikembalikan oleh TBM_GETNUMTICS menyertakan tanda centang pertama dan terakhir, yang tidak disertakan dalam array. Untuk mengambil posisi fisik tanda centang, di koordinat klien jendela trackbar, kirim pesan TBM_GETTICPOS. Pesan TBM_CLEARTICS menghapus semua kecuali tanda centang pertama dan terakhir dari trackbar.
Ukuran garis trackbar menentukan seberapa jauh penggeser bergerak sebagai respons terhadap input keyboard dari tombol panah, seperti panah KANAN atau tombol PANAH BAWAH. Untuk mengambil atau mengatur ukuran baris, kirim pesan TBM_GETLINESIZE dan TBM_SETLINESIZE. Trackbar juga mengirim kode pemberitahuan TB_LINEUP dan TB_LINEDOWN ke jendela induknya saat pengguna menekan tombol panah.
Ukuran halaman trackbar menentukan seberapa jauh penggelser bergerak sebagai respons terhadap input keyboard, seperti tombol PAGE UP atau PAGE DOWN, atau input mouse, seperti klik di saluran trackbar. Untuk mengambil atau mengatur ukuran halaman, kirim pesan TBM_GETPAGESIZE dan TBM_SETPAGESIZE. Trackbar juga mengirim kode pemberitahuan TB_PAGEUP dan TB_PAGEDOWN ke jendela induknya saat menerima input keyboard atau mouse yang menggulir halaman. Untuk informasi selengkapnya, lihat Pesan Notifikasi Trackbar.
Aplikasi dapat mengirim pesan untuk mengambil dimensi trackbar. Pesan TBM_GETTHUMBRECT mengambil persegi panjang pembatas untuk penggeser. Pesan TBM_GETTHUMBLENGTH mendapatkan panjang dari slider. Pesan TBM_GETCHANNELRECT mengambil persegi panjang pembatas untuk jalur trackbar, yang merupakan area tempat penunjuk bergerak. Ini berisi sorotan ketika rentang dipilih. Jika trackbar memiliki gaya TBS_FIXEDLENGTH, Anda dapat mengirim pesan TBM_SETTHUMBLENGTH untuk mengubah panjang pengguncur.
Anda mengambil atau mengatur rentang pilihan dengan mengirim pesan ke trackbar. Gunakan pesan TBM_SETSEL untuk mengatur posisi awal dan akhir pilihan. Untuk mengatur hanya posisi awal atau hanya posisi akhir pilihan, kirim pesan TBM_SETSELSTART atau TBM_SETSELEND. Untuk mengambil posisi awal atau akhir rentang pilihan, kirim pesan TBM_GETSELSTART atau TBM_GETSELEND. Untuk menghapus rentang pilihan dan memulihkan trackbar ke rentang aslinya, kirim pesan TBM_CLEARSEL.
Nota
Ini adalah tanggung jawab aplikasi untuk memastikan bahwa pengguna tidak dapat memilih nilai di luar rentang pilihan. Kontrol itu sendiri tidak mencegah pengguna menggeser penggeser di luar rentang.
Pesan Pemberitahuan Trackbar
Trackbar memberi tahu jendela induknya tentang tindakan pengguna dengan mengirimkan pesan WM_HSCROLL atau WM_VSCROLL kepada jendela induk. Trackbar dengan gaya TBS_HORZ mengirimkan pesan WM_HSCROLL. Trackbar dengan gaya TBS_VERT mengirim pesan WM_VSCROLL. Kata dari urutan rendah dari parameter wParam dari WM_HSCROLL atau WM_VSCROLL berisi kode pemberitahuan. Untuk kode pemberitahuan TB_THUMBPOSITION dan TB_THUMBTRACK, kata urutan tinggi parameter wParam menentukan posisi penggeser. Untuk semua kode pemberitahuan lainnya, kata urutan tinggi adalah nol; kirim pesan TBM_GETPOS untuk menentukan posisi penggunjuk. Parameter lParam adalah handle untuk trackbar.
Sistem mengirimkan kode pemberitahuan TB_BOTTOM, TB_LINEDOWN, TB_LINEUP, dan TB_TOP hanya ketika pengguna berinteraksi dengan trackbar dengan menggunakan keyboard. Kode pemberitahuan TB_THUMBPOSITION dan TB_THUMBTRACK hanya dikirim saat pengguna menggunakan mouse. Kode pemberitahuan TB_ENDTRACK, TB_PAGEDOWN, dan TB_PAGEUP dikirim dalam kedua kasus. Tabel berikut mencantumkan kode pemberitahuan trackbar dan peristiwa (kode kunci virtual atau peristiwa mouse) yang menyebabkan kode pemberitahuan Virtual-Keydikirim.
| Kode pemberitahuan | Alasan terkirim |
|---|---|
| TB_BOTTOM | VK_END |
| TB_ENDTRACK | WM_KEYUP (pengguna merilis kunci yang mengirim kode kunci virtual yang relevan) |
| TB_LINEDOWN | VK_RIGHT atau VK_DOWN |
| Jadwal_TB | VK_LEFT atau VK_UP |
| TB_PAGEDOWN | VK_NEXT (pengguna mengklik saluran di bawah atau di sebelah kanan penggeser) |
| TB_PAGEUP | VK_PRIOR (pengguna mengklik saluran di atas atau di sebelah kiri penggeser) |
| TB_THUMBPOSITION | WM_LBUTTONUP mengikuti kode pemberitahuan TB_THUMBTRACK |
| Lacak Ibu Jari TB | Pergerakan pengguncur (pengguna menyeret penggetar) |
| TB_TOP | VK_HOME |
Pemrosesan Pesan Default Trackbar
Bagian ini menjelaskan pemrosesan pesan jendela yang dilakukan oleh trackbar.
| Pesan | Pemrosesan dilakukan |
|---|---|
| WM_CAPTURECHANGED | Mematikan timer jika ditetapkan selama pemrosesan WM_LBUTTONDOWN dan mengirim kode pemberitahuan TB_THUMBPOSITION, jika perlu. Ini selalu mengirim kode pemberitahuan TB_ENDTRACK. |
| WM_CREATE | Melakukan inisialisasi tambahan, seperti mengatur ukuran garis, ukuran halaman, dan frekuensi tanda centang ke nilai default. |
| WM_DESTROY | Membebaskan sumber daya. |
| WM_ENABLE | Mengecat ulang jendela trackbar. |
| WM_ERASEBKGND | Menghapus latar belakang jendela, menggunakan warna latar belakang saat ini untuk trackbar. |
| WM_GETDLGCODE | Mengembalikan nilai DLGC_WANTARROWS. |
| WM_KEYDOWN | Memproses tombol arah dan mengirimkan kode notifikasi TB_TOP, TB_BOTTOM, TB_PAGEUP, TB_PAGEDOWN, TB_LINEUP, dan TB_LINEDOWN, sesuai. |
| WM_KEYUP | Mengirim kode pemberitahuan TB_ENDTRACK jika kunci adalah salah satu kunci arah. |
| WM_KILLFOCUS | Mengecat ulang jendela trackbar. |
| WM_LBUTTONDOWN | Mengatur fokus dan pengambilan kendali mouse pada trackbar. Jika perlu, ini mengatur timer yang menentukan seberapa cepat slider bergerak ke arah kursor mouse ketika pengguna menahan tombol mouse di jendela. |
| WM_LBUTTONUP | Melepaskan tangkapan mouse dan mengakhiri timer jika ditetapkan selama pemrosesan WM_LBUTTONDOWN. Ini mengirimkan kode notifikasi TB_THUMBPOSITION, jika diperlukan. Ini selalu mengirim kode pemberitahuan TB_ENDTRACK. |
| WM_MOUSEMOVE | Memindahkan slider dan mengirim kode pemberitahuan TB_THUMBTRACK saat melacak mouse (lihat WM_TIMER). |
| WM_PAINT | Mewarnai trackbar. Jika parameter wParam non-NULL, kontrol tersebut mengasumsikan bahwa nilainya adalah HDC dan menggambar menggunakan konteks perangkat tersebut. |
| WM_SETFOCUS | Mengecat ulang jendela trackbar. |
| WM_SIZE | Mengatur dimensi trackbar, menghapus slider jika tidak ada cukup ruang untuk menampilkannya. |
| WM_TIMER | Mengambil posisi mouse dan memperbarui posisi penggeser. (Ini hanya diterima ketika pengguna menyeret penggetar.) |
| WM_WININICHANGE | Menginisialisasi dimensi penggunjuk. |
TipsAlat Bilah Trek
Trackbar yang dibuat dengan gaya TBS_TOOLTIPS memiliki kontrol tooltip bawaan. Tipsalat tetap terlihat dan menampilkan nilai saat ini saat pengguna menyeret penggerak menggunakan mouse.
Anda dapat menetapkan kontrol tooltip baru ke trackbar dengan mengirim pesan TBM_SETTOOLTIPS. Untuk mengambil handle ke kontrol tooltip yang telah ditetapkan, gunakan pesan TBM_GETTOOLTIPS.