Bagikan melalui


Tentang Kontrol Bilah Alat

Bilah alat adalah kontrol yang berisi satu atau beberapa tombol. Setiap tombol, saat diklik oleh pengguna, mengirim pesan perintah ke jendela induk. Biasanya, tombol di toolbar sesuai dengan item di menu aplikasi, menyediakan cara tambahan dan lebih langsung bagi pengguna untuk mengakses perintah aplikasi.

Cuplikan layar berikut menunjukkan jendela yang berisi toolbar sederhana untuk operasi file. Aplikasi telah mengaktifkan gaya visual. Tombol Simpan "panas" karena kursor mengarah ke atasnya saat cuplikan layar diambil. Tampilan aktual kontrol bervariasi tergantung pada sistem operasi dan tema yang dipilih pengguna.

screen shot of a window with a three-button toolbar; one button is hot

Cuplikan layar berikut menunjukkan kontrol yang sama dalam aplikasi yang dikompilasi tanpa gaya visual diaktifkan.

screen shot of a window without visual styles: none of the buttons looks hot

Topik berikut membahas fitur yang perlu dipertimbangkan saat merencanakan toolbar. Untuk informasi spesifik tentang implementasi, dan contoh kode, lihat Menggunakan Kontrol Toolbar.

Menentukan Ukuran dan Posisi Bilah Alat

Jika Anda membuat toolbar menggunakan CreateToolbarEx, fungsi memungkinkan Anda menentukan dalam piksel tinggi dan lebar toolbar.

Catatan

Menggunakan CreateToolbarEx tidak disarankan, karena tidak mendukung fitur toolbar baru, termasuk daftar gambar. Untuk informasi selengkapnya tentang membuat toolbar, lihat Menggunakan Kontrol Toolbar.

 

Fungsi CreateWindowEx tidak memiliki parameter untuk menentukan ukuran toolbar. Prosedur jendela toolbar secara otomatis mengatur ukuran dan posisi jendela toolbar. Tinggi didasarkan pada tinggi tombol di toolbar. Lebarnya sama dengan lebar area klien jendela induk. Untuk mengubah pengaturan ukuran otomatis, kirim pesan TB_SETBUTTONSIZE . Gaya kontrol umum CCS_TOP dan CCS_BOTTOM menentukan apakah toolbar diposisikan di sepanjang bagian atas atau bawah area klien. Secara default, toolbar memiliki gaya CCS_TOP .

Selain itu, prosedur jendela toolbar secara otomatis menyesuaikan ukuran toolbar setiap kali menerima pesan WM_SIZE atau TB_AUTOSIZE. Aplikasi harus mengirim salah satu pesan ini setiap kali ukuran jendela induk berubah atau setelah mengirim pesan yang memerlukan penyesuaian ukuran toolbar—misalnya, pesan TB_SETBUTTONSIZE .

Perilaku ukuran dan penempatan default toolbar dapat dimatikan dengan mengatur gaya kontrol CCS_NORESIZE dan CCS_NOPARENTALIGN umum. Kontrol bilah alat yang dihosting oleh kontrol bilah-ulang harus mengatur gaya ini karena ukuran kontrol bilah-ulang dan memposisikan bilah alat.

Bilah Alat Transparan

Kontrol toolbar mendukung tampilan transparan yang memungkinkan area klien di bawah toolbar ditampilkan. Ada dua jenis toolbar transparan, satu dengan tombol datar dan satu dengan tombol tiga dimensi. Jika Anda ingin aplikasi Anda cocok dengan antarmuka Windows, gunakan toolbar gaya transparan datar.

Cuplikan layar berikut menunjukkan dua jenis toolbar transparan, tidak menggunakan gaya visual.

screen shot of two windows with different styles of toolbars, but both toolbars are transparent

Cuplikan layar berikut menunjukkan toolbar transparan seperti yang mungkin muncul di Windows Vista, dengan gaya visual diaktifkan. Warna latar belakang kotak dialog telah diubah untuk membuat transparansi lebih jelas.

screen shot of a window in windows vista with a transparent toolbar

Untuk membuat toolbar transparan, yang perlu Anda lakukan adalah menambahkan TBSTYLE_FLAT atau TBSTYLE_TRANSPARENT ke parameter gaya jendela CreateWindowEx. Jika Anda tidak ingin garis muncul untuk menunjukkan bagian bawah toolbar, jangan gunakan gaya jendela WS_BORDER .

Catatan

Saat menggunakan gaya visual, toolbar mungkin datar secara default.

 

Bilah Alat Gaya Daftar

Tombol bilah alat memungkinkan Anda menampilkan teks dan bitmap. Tombol pada toolbar yang dibuat dengan gaya TBSTYLE_LIST menempatkan teks di sebelah kanan bitmap, bukan di bawahnya.

Cuplikan layar berikut ini memperlihatkan toolbar dengan gaya daftar.

screen shot of a toolbar with text to the right of each icon

Anda dapat menggunakan gaya toolbar TBSTYLE_LIST dalam kombinasi dengan gaya TBSTYLE_FLAT untuk membuat toolbar dengan tombol datar.

Menentukan Gambar Tombol

Ada dua cara untuk menentukan gambar untuk tombol—berdasarkan bitmap atau menurut daftar gambar. Aplikasi harus memilih metode mana yang akan digunakan. Ini tidak dapat menggunakan kedua metode dengan kontrol toolbar yang sama. Perhatikan bahwa fungsi CreateToolbarEx menggunakan metode bitmap. Aplikasi yang ingin menggunakan metode daftar gambar harus menggunakan fungsi CreateWindowEx untuk membuat kontrol toolbar.

Menentukan Gambar Tombol dengan Menggunakan Bitmap

Setiap tombol dalam toolbar dapat menyertakan gambar bitmapped. Toolbar menggunakan daftar internal untuk menyimpan informasi yang diperlukan untuk menggambar gambar. Saat Anda memanggil fungsi CreateToolbarEx , Anda menentukan bitmap monokrom atau warna yang berisi gambar awal, dan toolbar menambahkan informasi ke daftar gambar internal. Anda dapat menambahkan gambar tambahan nanti dengan menggunakan pesan TB_ADDBITMAP.

Setiap gambar memiliki indeks berbasis nol. Gambar pertama yang ditambahkan ke daftar internal memiliki indeks 0, gambar kedua memiliki indeks 1, dan sebagainya. TB_ADDBITMAP menambahkan gambar ke akhir daftar dan mengembalikan indeks gambar baru pertama yang ditambahkannya. Untuk mengaitkan gambar dengan tombol, Anda harus mengirim pesan TB_ADDBUTTONS dan menentukan indeks gambar setelah Anda menambahkan bitmap ke daftar gambar internal.

Windows mengasumsikan bahwa semua gambar bitmapped toolbar berukuran sama. Anda menentukan ukuran saat membuat toolbar dengan menggunakan CreateToolbarEx. Jika Anda menggunakan fungsi CreateWindowEx untuk membuat toolbar, ukuran gambar diatur ke dimensi default 16 kali 15 piksel. Anda dapat menggunakan pesan TB_SETBITMAPSIZE untuk mengubah dimensi gambar bitmapped, tetapi Anda harus melakukannya sebelum menambahkan gambar apa pun ke daftar internal.

Menentukan Gambar Tombol dengan Menggunakan Daftar Gambar

Anda juga dapat menyimpan gambar tombol dalam sekumpulan Daftar Gambar. Daftar gambar adalah kumpulan gambar dengan ukuran yang sama, yang masing-masing dapat dirujuk oleh indeksnya. Daftar gambar digunakan untuk mengelola sekumpulan besar ikon atau bitmap. Anda bisa menggunakan hingga tiga daftar gambar berbeda untuk menampilkan tombol di berbagai status, seperti yang diperlihatkan dalam tabel berikut.

Provinsi Deskripsi
Normal Tombol dalam status defaultnya.
Populer Tombol yang berada di bawah penunjuk atau ditekan. Item panas hanya didukung di kontrol toolbar yang memiliki gaya TBSTYLE_FLAT.
Nonaktif Tombol yang dinonaktifkan.

 

Setelah toolbar dihancurkan, aplikasi harus membebaskan daftar gambar apa pun yang telah mereka buat.

Menentukan Teks untuk Tombol

Setiap tombol dapat menampilkan string selain, atau sebagai gantinya, gambar. Toolbar mempertahankan daftar internal yang berisi semua string yang tersedia untuk tombol toolbar. Anda menambahkan string ke daftar internal dengan menggunakan pesan TB_ADDSTRING , menentukan alamat buffer yang berisi string yang akan ditambahkan. Setiap string harus dihentikan null, dan string terakhir harus dihentikan dengan dua karakter null.

Setiap string memiliki indeks berbasis nol. String pertama yang ditambahkan ke daftar internal string memiliki indeks 0, string kedua memiliki indeks 1, dan sebagainya. TB_ADDSTRING menambahkan string ke akhir daftar dan mengembalikan indeks string baru pertama. Anda menggunakan indeks string untuk mengaitkan string dengan tombol .

Menggunakan TB_ADDSTRING bukan satu-satunya cara untuk menambahkan string ke toolbar. Anda dapat menampilkan string dalam tombol dengan meneruskan penunjuk string di anggota iString struktur TBBUTTON yang diteruskan ke TB_ADDBUTTONS. Selain itu, Anda dapat menggunakan TB_SETBUTTONINFO untuk menetapkan teks ke tombol toolbar.

Menambahkan Tombol Bilah Alat

Jika Anda menggunakan fungsi CreateToolbarEx untuk membuat toolbar, Anda dapat menambahkan tombol ke toolbar dengan mengisi array struktur TBBUTTON dan menentukan alamat array dalam panggilan fungsi. Namun, fungsi CreateWindowEx tidak memiliki parameter untuk melewati struktur TBBUTTON . CreateWindowEx membuat toolbar kosong yang Anda isi dengan mengirim pesan TB_ADDBUTTONS, menentukan alamat struktur TBBUTTON.

Setelah toolbar dibuat, Anda dapat menambahkan tombol dengan mengirim pesan TB_INSERTBUTTON atau TB_ADDBUTTONS. Setiap tombol dijelaskan oleh struktur TBBUTTON , yang menentukan atribut tombol, termasuk indeks string dan bitmapnya serta gaya, status, pengidentifikasi perintah, dan nilai 32-bit yang ditentukan aplikasi.

Catatan

Jika Anda menggunakan fungsi CreateWindowEx untuk membuat toolbar, Anda harus mengirim pesan TB_BUTTONSTRUCTSIZE sebelum menambahkan tombol apa pun. Pesan meneruskan ukuran struktur TBBUTTON ke toolbar.

 

Gaya Tombol Bilah Alat

Gaya tombol menentukan bagaimana tombol muncul dan bagaimana tombol merespons input pengguna. Misalnya, gaya BTNS_BUTTON membuat tombol toolbar yang berulah seperti tombol tekan standar. Tombol yang memiliki gaya BTNS_CHECK mirip dengan tombol dorong standar, kecuali tombol tersebut beralih antara status yang ditekan dan tidak tertekan setiap kali pengguna mengkliknya.

Anda dapat membuat grup tombol toolbar yang bertindak seperti tombol radio dengan menggunakan gaya BTNS_GROUP atau BTNS_CHECKGROUP. Ini menyebabkan tombol tetap ditekan hingga pengguna memilih tombol lain dalam grup. Grup didefinisikan sebagai kumpulan tombol yang berdekatan, semuanya dengan gaya BTNS_GROUP atau BTNS_CHECKGROUP .

Gaya BTNS_SEP membuat celah kecil di antara tombol atau menggambar etch di antara tombol pada toolbar datar. Tombol dengan gaya BTNS_SEP tidak menerima input pengguna.

Versi 5.80 dari kontrol umum memperkenalkan beberapa gaya tombol toolbar baru dan mengganti nama beberapa gaya yang lebih lama. Semua bendera gaya tombol sekarang dimulai dengan BTNS_XXX alih-alih TBSTYLE_XXX. Untuk daftar dan diskusi gaya tombol, lihat Kontrol Toolbar dan Gaya Tombol.

Status Tombol Bilah Alat

Setiap tombol dalam toolbar memiliki status. Toolbar memperbarui status tombol untuk mencerminkan tindakan pengguna, seperti mengklik tombol. Status menunjukkan apakah tombol saat ini ditekan atau tidak ditekan, diaktifkan atau dinonaktifkan, tersembunyi atau terlihat. Meskipun aplikasi mengatur status awal tombol saat menambahkan tombol ke toolbar, aplikasi dapat mengubah dan mengambil status dengan mengirim TB_GETSTATE dan TB_SETSTATE pesan ke toolbar. Untuk daftar status tombol toolbar, lihat Status Toolbar.

Pengidentifikasi Perintah

Setiap tombol memiliki pengidentifikasi perintah yang ditentukan aplikasi yang terkait dengannya. Pengidentifikasi tombol biasanya ditentukan dalam file header aplikasi. Misalnya, tombol Tempel dapat didefinisikan sebagai:

#define ID_PASTE 100

Saat pengguna memilih tombol, toolbar mengirimkan jendela induk pesan WM_COMMAND atau WM_NOTIFY yang menyertakan pengidentifikasi perintah tombol. Jendela induk memeriksa pengidentifikasi perintah dan menjalankan perintah yang terkait dengan tombol . Untuk informasi tentang kapan kontrol mengirim pesan WM_COMMAND dan kapan mereka mengirim WM_NOTIFY, lihat bagian Keterangan dari dokumentasi WM_NOTIFY .

Ukuran dan Posisi Tombol

Toolbar melacak tombolnya dengan menetapkan setiap tombol indeks posisi. Indeks berbasis nol; artinya, tombol paling kiri memiliki indeks 0, tombol berikutnya di sebelah kanan memiliki indeks 1, dan sebagainya. Aplikasi harus menentukan indeks tombol saat mengirim pesan untuk mengambil informasi tentang tombol atau untuk mengatur atribut tombol.

Toolbar memperbarui indeks posisi saat tombol disisipkan dan dihapus. Aplikasi dapat mengambil indeks posisi tombol saat ini dengan menggunakan pesan TB_COMMANDTOINDEX. Pesan menentukan pengidentifikasi perintah tombol, dan jendela toolbar menggunakan pengidentifikasi untuk menemukan tombol dan mengembalikan indeks posisinya.

Semua tombol dalam toolbar berukuran sama. Fungsi CreateToolbarEx mengharuskan Anda mengatur ukuran awal tombol saat Anda membuat toolbar. Saat Anda menggunakan fungsi CreateWindowEx , ukuran awal diatur ke dimensi default 24 kali 22 piksel. Anda dapat menggunakan pesan TB_SETBUTTONSIZE untuk mengubah ukuran tombol, tetapi Anda harus melakukannya sebelum menambahkan tombol apa pun ke toolbar. Pesan TB_GETITEMRECT mengambil dimensi tombol saat ini.

Saat Anda menambahkan string yang lebih panjang dari string apa pun yang saat ini berada di toolbar, toolbar secara otomatis mengatur ulang lebar tombolnya. Lebar diatur untuk mengakomodasi string terpanjang di toolbar.

Mengaktifkan Kustomisasi

Toolbar memiliki fitur kustomisasi bawaan yang dapat Anda sediakan untuk pengguna dengan memberikan toolbar gaya kontrol umum CCS_ADJUSTABLE . Fitur kustomisasi memungkinkan pengguna untuk menyeret tombol ke posisi baru atau menghapus tombol dengan menyeretnya dari toolbar. Selain itu, pengguna dapat mengklik dua kali toolbar untuk menampilkan kotak dialog Kustomisasi Bilah Alat, yang memungkinkan pengguna untuk menambahkan, menghapus, dan menyusun ulang tombol toolbar. Untuk menampilkan kotak dialog, gunakan pesan TB_CUSTOMIZE. Aplikasi menentukan apakah fitur kustomisasi tersedia untuk pengguna dan mengontrol sejauh mana pengguna dapat menyesuaikan toolbar.

Sebagai bagian dari proses penyesuaian, aplikasi sering kali perlu menyimpan dan memulihkan status toolbar. Misalnya, banyak aplikasi menyimpan status toolbar sebelum pengguna mulai menyesuaikan toolbar jika pengguna nantinya ingin memulihkan toolbar ke status aslinya. Kontrol bilah alat tidak secara otomatis menyimpan catatan status prekustomisasinya. Aplikasi Anda harus menyimpan status bilah alat untuk memulihkannya. Untuk informasi selengkapnya, lihat Menggunakan Kontrol Toolbar.

Mengaktifkan Pelacakan panas

Pelacakan panas berarti bahwa ketika penunjuk bergerak di atas item, tampilan tombol berubah. Saat gaya visual diaktifkan, toolbar mendukung pelacakan panas secara default. Jika tidak, hanya kontrol toolbar yang dibuat dengan gaya TBSTYLE_FLAT yang mendukung pelacakan panas. Anda dapat menggunakan gaya jendela lain dalam kombinasi dengan TBSTYLE_FLAT untuk menghasilkan toolbar yang memungkinkan pelacakan panas tetapi memiliki tampilan yang berbeda dari toolbar datar. Untuk informasi selengkapnya, lihat Menggunakan Kontrol Toolbar.