Bagikan melalui


Bilah Gulir Datar

Microsoft Internet Explorer 4.0 memperkenalkan teknologi visual baru yang disebut bilah gulir datar. Secara fungsional, bilah gulir datar berulah seperti bilah gulir standar. Perbedaannya adalah Anda dapat menyesuaikan penampilannya dengan tingkat yang lebih besar daripada bilah gulir standar.

Ilustrasi berikut ini memperlihatkan jendela yang berisi bilah gulir datar.

screen shot of a window that contains a flat scroll bar

Catatan

Bilah gulir datar didukung oleh versi Comctl32.dll 4.71 hingga 5.82. Comctl32.dll versi 6.00 dan yang lebih baru tidak mendukung bilah gulir datar.

 

Menggunakan Bilah Gulir Datar

Bagian ini menjelaskan cara menerapkan bilah gulir datar di aplikasi Anda.

Sebelum Anda mulai

Untuk menggunakan fungsi bilah gulir datar, Anda harus menyertakan Commctrl.h dalam file sumber Anda dan menautkan dengan Comctl32.lib.

Menambahkan Bilah Gulir Datar ke Jendela

Untuk menambahkan bilah gulir datar ke jendela, panggil InitializeFlatSB, lewati handel ke jendela. Alih-alih menggunakan fungsi bilah gulir standar untuk memanipulasi bilah gulir, Anda harus menggunakan fungsi FlatSB_XXX yang setara. Ada fungsi bilah gulir datar untuk mengatur dan mengambil informasi gulir, rentang, dan posisi. Jika bilah gulir datar belum diinisialisasi untuk jendela Anda, API bilah gulir datar akan menumpuk ke fungsi standar yang sesuai, jika ada yang digunakan. Hal ini memungkinkan Anda untuk mengaktifkan dan menonaktifkan bilah gulir datar tanpa harus menulis kode kondisional.

Karena aplikasi mungkin telah mengatur metrik kustom untuk bilah gulir datarnya, aplikasi tersebut tidak diperbarui secara otomatis saat metrik sistem berubah. Saat metrik bilah gulir sistem berubah, pesan WM_SETTINGCHANGE disiarkan, dengan wParam diatur ke SPI_SETNONCLIENTMETRICS. Untuk memperbarui bilah gulir datar ke metrik sistem baru, aplikasi harus menangani pesan ini dan mengubah properti dependen metrik bilah gulir datar secara eksplisit.

Untuk memperbarui properti bilah gulir Anda, gunakan FlatSB_SetScrollProp. Fragmen kode berikut mengubah properti dependen metrik bilah gulir datar ke nilai sistem saat ini.

void FlatSB_UpdateMetrics(HWND hWnd)
{
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXVSCROLL, GetSystemMetrics(SM_CXVSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXHSCROLL, GetSystemMetrics(SM_CXHSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYVSCROLL, GetSystemMetrics(SM_CYVSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYHSCROLL, GetSystemMetrics(SM_CYHSCROLL), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CXHTHUMB, GetSystemMetrics(SM_CXHTHUMB), FALSE);
FlatSB_SetScrollProp(hWnd, WSB_PROP_CYVTHUMB, GetSystemMetrics(SM_CYVTHUMB), TRUE);
}

Meningkatkan Bilah Gulir Datar

FlatSB_SetScrollProp memungkinkan Anda memodifikasi bilah gulir datar untuk menyesuaikan tampilan jendela Anda. Untuk bilah gulir vertikal, Anda dapat mengubah lebar bilah dan tinggi panah arah. Untuk bilah gulir horizontal, Anda dapat mengubah tinggi bilah dan lebar panah arah. Anda juga dapat mengubah warna latar belakang bilah gulir horizontal dan vertikal.

FlatSB_SetScrollProp juga memungkinkan Anda untuk menyesuaikan bagaimana bilah gulir datar ditampilkan. Dengan mengubah properti WSB_PROP_VSTYLE dan WSB_PROP_HSTYLE, Anda dapat mengatur jenis bilah gulir yang ingin Anda gunakan. Tiga gaya tersedia.

Gaya Deskripsi
FSB_ENCARTA_MODE Bilah gulir datar standar ditampilkan. Ketika mouse bergerak di atas tombol arah atau ibu jari, bagian bilah gulir tersebut akan ditampilkan dalam 3D.
FSB_FLAT_MODE Bilah gulir datar standar ditampilkan. Ketika mouse bergerak di atas tombol arah atau ibu jari, bagian bilah gulir tersebut akan ditampilkan dalam warna terbalik.
FSB_REGULAR_MODE Bilah gulir nonflat normal ditampilkan. Tidak ada efek visual khusus yang akan diterapkan.

 

Menghapus Bilah Gulir Datar

Jika Anda ingin menghapus bilah gulir datar dari jendela Anda, panggil fungsi UninitializeFlatSB , meneruskan handel ke jendela. Fungsi ini hanya menghapus bilah gulir datar dari jendela Anda pada waktu proses. Anda tidak perlu memanggil fungsi ini ketika jendela Anda dihancurkan.