Menangani Tombol Terapkan
Lembar properti memiliki kemampuan yang tidak dimiliki kotak dialog standar: Mereka memungkinkan pengguna menerapkan perubahan yang telah mereka buat sebelum menutup lembar properti. Ini dilakukan menggunakan tombol Terapkan. Artikel ini membahas metode yang dapat Anda gunakan untuk mengimplementasikan fitur ini dengan benar.
Kotak dialog modal biasanya menerapkan pengaturan ke objek eksternal saat pengguna mengklik OK untuk menutup kotak dialog. Hal yang sama berlaku untuk lembar properti: Ketika pengguna mengklik OK, pengaturan baru di lembar properti berlaku.
Namun, Anda mungkin ingin mengizinkan pengguna menyimpan pengaturan tanpa harus menutup kotak dialog lembar properti. Ini adalah fungsi tombol Terapkan. Tombol Terapkan menerapkan pengaturan saat ini di semua halaman properti ke objek eksternal, dibandingkan dengan hanya menerapkan pengaturan halaman aktif saat ini.
Secara default, tombol Terapkan selalu dinonaktifkan. Anda harus menulis kode untuk mengaktifkan tombol Terapkan pada waktu yang sesuai, dan Anda harus menulis kode untuk mengimplementasikan efek Terapkan, seperti yang dijelaskan di bawah ini.
Jika Anda tidak ingin menawarkan fungsionalitas Terapkan kepada pengguna, tidak perlu menghapus tombol Terapkan. Anda dapat membiarkannya dinonaktifkan, seperti yang akan umum di antara aplikasi yang menggunakan dukungan lembar properti standar yang tersedia di versi Windows mendatang.
Untuk melaporkan halaman sebagai dimodifikasi dan mengaktifkan tombol Terapkan, panggil CPropertyPage::SetModified( TRUE )
. Jika salah satu laporan halaman dimodifikasi, tombol Terapkan akan tetap diaktifkan, terlepas dari apakah halaman yang saat ini aktif telah dimodifikasi.
Anda harus memanggil CPropertyPage::SetModified setiap kali pengguna mengubah pengaturan apa pun di halaman. Salah satu cara untuk mendeteksi kapan pengguna mengubah pengaturan di halaman adalah dengan menerapkan penangan pemberitahuan perubahan untuk setiap kontrol di halaman properti, seperti EN_CHANGE atau BN_CLICKED.
Untuk menerapkan efek tombol Terapkan, lembar properti harus memberi tahu pemiliknya, atau beberapa objek eksternal lainnya dalam aplikasi, untuk menerapkan pengaturan saat ini di halaman properti. Pada saat yang sama, lembar properti harus menonaktifkan tombol Terapkan dengan memanggil CPropertyPage::SetModified( FALSE )
semua halaman yang menerapkan modifikasinya ke objek eksternal.
Untuk contoh proses ini, lihat PROPDLG sampel Umum MFC.