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.
Bilah status adalah jendela horizontal di bagian bawah jendela induk tempat aplikasi dapat menampilkan berbagai jenis informasi status. Bilah status dapat dibagi menjadi beberapa bagian untuk menampilkan lebih dari satu jenis informasi. Cuplikan layar berikut menunjukkan bilah status di aplikasi Microsoft Windows Paint. Dalam hal ini, bilah status berisi teks "Untuk Bantuan, klik Topik Bantuan pada Menu Bantuan". Bilah status adalah area di bagian bawah jendela yang berisi teks Bantuan dan informasi koordinat.
Bagian ini mencakup topik berikut.
- Tipe dan Gaya
- Ukuran dan Tinggi
- Bilah StatusMultiple-Part
- Operasi Teks Bilah Status
- Bilah StatusOwner-Drawn
- Bilah Status Mode Sederhana
- Pemrosesan Pesan Bilah Status Default
Jenis dan Gaya
Posisi default bilah status berada di sepanjang bagian bawah jendela induk, tetapi Anda dapat menentukan gaya CCS_TOP agar muncul di bagian atas area klien jendela induk.
Anda dapat menentukan gaya SBARS_SIZEGRIP untuk menyertakan pegangan ukuran di ujung kanan bilah status.
Nota
Menggabungkan gaya CCS_TOP dan SBARS_SIZEGRIP tidak disarankan karena pegangan ukuran yang dihasilkan tidak berfungsi.
Ukuran dan Tinggi
Prosedur jendela untuk bilah status secara otomatis mengatur ukuran dan posisi awal jendela, mengabaikan nilai yang ditentukan dalam fungsi CreateWindowEx. Lebarnya sama dengan area klien jendela induk. Tinggi didasarkan pada metrik font yang saat ini dipilih ke dalam konteks perangkat bilah status dan pada lebar batas jendela.
Prosedur jendela secara otomatis menyesuaikan ukuran bilah status setiap kali menerima pesan WM_SIZE. Biasanya, ketika ukuran jendela induk berubah, induk mengirim pesan WM_SIZE ke bilah status.
Aplikasi dapat mengatur tinggi minimum area gambar bilah status dengan mengirim jendela pesan SB_SETMINHEIGHT, menentukan tinggi minimum, dalam piksel. Area gambar tidak menyertakan batas jendela. Tinggi minimum berguna untuk menggambar di bilah status yang digambar pemilik. Untuk informasi selengkapnya, lihat bilah status Owner-Drawn nanti di bab ini.
Anda mengambil lebar batas bilah status dengan mengirim jendela pesan SB_GETBORDERS. Pesan mencakup alamat array tiga elemen yang menerima lebar.
Bilah Status Multiple-Part
Bilah status dapat memiliki banyak bagian yang berbeda, masing-masing menampilkan baris teks yang berbeda. Anda membagi bilah status menjadi beberapa bagian dengan mengirim jendela pesan SB_SETPARTS, menentukan jumlah bagian yang akan dibuat dan alamat array bilangan bulat. Array berisi satu elemen untuk setiap bagian, dan setiap elemen menentukan koordinat klien dari tepi kanan suatu bagian.
Bilah status dapat memiliki maksimum 256 bagian, meskipun aplikasi biasanya menggunakan jauh lebih sedikit dari itu. Anda mengambil hitungan bagian dalam bilah status, serta koordinat tepi kanan setiap bagian, dengan mengirim jendela pesan SB_GETPARTS.
Operasi Teks Bilah Status
Anda mengatur teks bagian mana pun dari bilah status dengan mengirim pesan SB_SETTEXT, menentukan indeks berbasis nol dari suatu bagian, alamat string yang akan digambar di bagian, dan teknik untuk menggambar string. Teknik menggambar menentukan apakah teks memiliki batas dan, jika ya, gaya batas. Ini juga menentukan apakah jendela induk bertanggung jawab untuk menggambar teks. Untuk informasi selengkapnya, lihat bagian Bilah StatusOwner-Drawn di bawah ini.
Secara default, teks diratakan kiri dalam bagian yang ditentukan dari bilah status. Anda dapat menyematkan karakter tab (\ t) di teks ke tengah atau rata kanan. Teks di sebelah kanan karakter tab tunggal di tengah, dan teks di sebelah kanan karakter tab kedua rata kanan.
Untuk mengambil teks dari bilah status, gunakan pesan SB_GETTEXTLENGTH dan SB_GETTEXT.
Jika aplikasi Anda menggunakan bilah status yang hanya memiliki satu bagian, Anda dapat menggunakan pesan WM_SETTEXT, WM_GETTEXT, dan WM_GETTEXTLENGTH untuk melakukan operasi teks. Pesan-pesan ini hanya berurusan dengan bagian yang memiliki indeks nol, memungkinkan Anda memperlakukan bilah status seperti kontrol teks statis.
Untuk menampilkan baris status tanpa membuat bilah status, gunakan fungsiDrawStatusText. Fungsi ini menggunakan teknik yang sama untuk menggambar status sebagai prosedur jendela untuk bilah status, tetapi tidak secara otomatis mengatur ukuran dan posisi informasi status. Saat memanggil fungsi, Anda harus menentukan ukuran dan posisi informasi status serta konteks perangkat jendela untuk menggambarnya.
Bilah Status Owner-Drawn
Anda dapat menentukan bagian individual dari bilah status menjadi bagian yang digambar pemilik. Menggunakan teknik ini memberi Anda lebih banyak kontrol daripada yang Anda miliki selama tampilan bagian jendela. Misalnya, Anda dapat menampilkan bitmap daripada teks atau menggambar teks menggunakan font yang berbeda.
Untuk menentukan bagian jendela sebagai gambar pemilik, kirim pesan SB_SETTEXT ke bilah status, menentukan bagian dan teknik gambar SBT_OWNERDRAW. Ketika SBT_OWNERDRAW ditentukan, parameter lParam adalah nilai yang ditentukan aplikasi 32-bit yang dapat digunakan aplikasi saat menggambar bagian. Misalnya, Anda dapat menentukan handel font, handel bitmap, alamat string, dan sebagainya.
Saat bilah status perlu menggambar bagian yang digambar pemilik, bilah status akan mengirim pesan WM_DRAWITEM ke jendela induk. Parameter wParam pesan adalah pengidentifikasi jendela anak dari bilah status, dan parameter lParam adalah alamat struktur DRAWITEMSTRUCT. Jendela induk menggunakan informasi dalam struktur untuk menggambar bagian. Untuk bagian pemilik yang digambar dari bilah status, DRAWITEMSTRUCT berisi informasi berikut.
| Anggota | Deskripsi |
|---|---|
| CtlType | Undefined; jangan gunakan. |
| CtlID | Pengidentifikasi jendela anak dari bilah status. |
| itemID | Indeks berbasis nol dari bagian yang akan digambar. |
| itemAction | Undefined; jangan gunakan. |
| itemState | Undefined; jangan gunakan. |
| hwndItem | Tangani ke bilah status. |
| hDC | Tangani ke konteks perangkat bilah status. |
| rcItem | Koordinat bagian jendela yang akan digambar. Koordinat relatif terhadap sudut kiri atas bilah status. |
| itemData | Nilai 32-bit yang ditentukan aplikasi yang ditentukan dalam parameter lParam dari pesan SB_SETTEXT. |
Bilah Status Mode Sederhana
Anda meletakkan bilah status dalam "mode sederhana" dengan mengirimkannya pesan SB_SIMPLE. Bilah status mode sederhana hanya menampilkan satu bagian. Ketika teks jendela diatur, jendela tidak valid, tetapi tidak digambar ulang sampai WM_PAINTberikutnya. Menunggu pesan mengurangi kedipan layar dengan meminimalkan berapa kali jendela digambar ulang. Bilah status mode sederhana berguna untuk menampilkan teks Bantuan untuk item menu saat pengguna menggulir menu.
String yang ditampilkan bilah status saat dalam mode sederhana dipertahankan secara terpisah dari string yang ditampilkannya saat dalam mode nonsimple. Ini berarti Anda dapat menempatkan jendela dalam mode sederhana, mengatur teksnya, dan beralih kembali ke mode nonsimple tanpa teks mode nonsimple yang diubah.
Saat mengatur teks bilah status mode sederhana, Anda dapat menentukan teknik menggambar apa pun kecuali SBT_OWNERDRAW. Bilah status mode sederhana tidak mendukung gambar pemilik.
Pemrosesan Pesan Bilah Status Default
Bagian ini menjelaskan pesan yang ditangani oleh prosedur jendela untuk kelasSTATUSCLASSNAME yang telah ditentukan sebelumnya.
| Pesan | Pemrosesan default |
|---|---|
| WM_CREATE | Menginisialisasi bilah status. |
| WM_DESTROY | Membebaskan sumber daya yang dialokasikan untuk bilah status. |
| WM_GETFONT | Mengembalikan handel ke font saat ini yang dengannya bilah status menggambar teksnya. |
| WM_GETTEXT | Menyalin teks dari bagian pertama bilah status ke buffer. Ini mengembalikan nilai 32-bit yang menentukan panjang, dalam karakter, teks dan teknik yang digunakan untuk menggambar teks. |
| WM_GETTEXTLENGTH | Mengembalikan nilai 32-bit yang menentukan panjang, dalam karakter, dari teks di bagian pertama bilah status dan teknik yang digunakan untuk menggambar teks. |
| WM_NCHITTEST | Mengembalikan nilai HTBOTTOMRIGHT jika kursor mouse berada dalam genggaman ukuran, menyebabkan sistem menampilkan kursor ukuran. Jika kursor mouse tidak berada dalam genggaman ukuran, bilah status meneruskan pesan ini ke fungsi DefWindowProc. |
| WM_PAINT | Mengecat wilayah bilah status yang tidak valid. Jika parameter wParam non-null, kontrol mengasumsikan bahwa nilainya adalah HDC dan cat menggunakan konteks perangkat tersebut. |
| WM_SETFONT | Memilih handel font ke dalam konteks perangkat untuk bilah status. |
| WM_SETTEXT | Menyalin teks yang ditentukan ke bagian pertama bilah status, menggunakan operasi gambar default (ditentukan sebagai nol). Ini mengembalikan TRUE jika berhasil, atau FALSE sebaliknya. |
| WM_SIZE | Mengubah ukuran bilah status berdasarkan lebar area klien jendela induk saat ini dan tinggi font bilah status saat ini. |