Fungsi SHMessageBoxCheckW (shlwapi.h)
[SHMessageBoxCheck tersedia untuk digunakan dalam sistem operasi yang ditentukan di bagian Persyaratan. Ini mungkin diubah atau tidak tersedia dalam versi berikutnya.]
Menampilkan kotak pesan yang memberi pengguna opsi untuk menekan kemunculan lebih lanjut. Jika pengguna telah memilih untuk menekan kotak pesan, fungsi tidak menampilkan kotak dialog dan sebaliknya hanya mengembalikan nilai default.
Sintaks
int SHMessageBoxCheckW(
[in, optional] HWND hwnd,
[in] LPCWSTR pszText,
[in] LPCWSTR pszCaption,
UINT uType,
int iDefault,
[in] LPCWSTR pszRegVal
);
Parameter
[in, optional] hwnd
Jenis: HWND
Handel jendela ke pemilik kotak pesan. Nilai ini bisa NULL.
[in] pszText
Jenis: LPCTSTR
Penunjuk ke string yang dihentikan null yang berisi pesan yang akan ditampilkan.
[in] pszCaption
Jenis: LPCTSTR
Penunjuk ke string yang dihentikan null yang berisi judul kotak pesan. Jika parameter ini diatur ke NULL, judul diatur ke Kesalahan!.
uType
Jenis: UINT
Bendera yang menentukan konten dan perilaku kotak pesan. Fungsi ini hanya mendukung subset bendera yang didukung oleh MessageBox. Jika Anda menggunakan bendera apa pun yang tidak tercantum di bawah ini, perilaku fungsi tidak terdefinisi.
Anda harus menentukan tombol yang akan ditampilkan dengan mengatur satu dan hanya salah satu bendera berikut.
MB_OKCANCEL
Tampilkan kotak pesan dengan tombol OK dan Batal .
MB_YESNO
Tampilkan kotak pesan dengan tombol Ya dan Tidak .
MB_OK
Tampilkan kotak pesan dengan tombol OK .
Anda dapat menampilkan ikon opsional dengan mengatur satu dan hanya satu dari bendera berikut.
MB_ICONHAND
Tampilkan ikon tanda berhenti.
MB_ICONQUESTION
Tampilkan ikon tanda tanya.
MB_ICONEXCLAMATION
Tampilkan ikon tanda seru.
MB_ICONINFORMATION
Tampilkan ikon dengan huruf kecil "i" dalam lingkaran.
iDefault
Jenis: int
Nilai yang dikembalikan fungsi saat pengguna memilih untuk tidak menampilkan kotak pesan lagi. Jika pengguna belum memilih untuk menekan kotak pesan, kotak pesan ditampilkan dan fungsi mengabaikan iDefault.
[in] pszRegVal
Jenis: LPCTSTR
Penunjuk ke string yang dihentikan null yang berisi nilai string unik untuk dikaitkan dengan pesan ini. Untuk menghindari tabrakan dengan nilai yang digunakan oleh Microsoft, string ini harus menyertakan GUID. Panjang string ini tidak boleh melebihi REGSTR_MAX_VALUE_LENGTH karakter, termasuk karakter null yang mengakhiri.
Mengembalikan nilai
Jenis: int
Jika pengguna telah memilih untuk menekan kotak pesan, fungsi segera mengembalikan nilai yang ditetapkan ke iDefault.
Jika pengguna mengklik tombol OK, Batal, Ya, atau Tidak , fungsi mengembalikan IDOK, IDCANCEL, IDYES, atau IDNO, masing-masing.
Jika pengguna menutup kotak pesan dengan mengklik tombol X di caption, fungsi mengembalikan IDCANCEL. Nilai ini dikembalikan dalam kasus ini meskipun bendera MB_OKCANCEL belum ditetapkan.
Jika terjadi kesalahan, nilai yang dikembalikan biasanya –1. Namun, dalam kondisi memori rendah tertentu, fungsi mungkin mengembalikan iDefault.
Keterangan
Peringatan Keamanan: Jangan mengambil tindakan berbahaya jika fungsi mengembalikan –1 atau iDefault. Jika terjadi kesalahan saat mencoba menampilkan kotak pesan, SHMessageBoxCheck mengembalikan -1 atau, dalam beberapa kasus, iDefault. Kesalahan tersebut dapat disebabkan oleh memori atau sumber daya yang tidak mencukupi. Jika Anda mendapatkan salah satu nilai pengembalian ini, Anda harus menyadari bahwa pengguna tidak selalu melihat kotak dialog dan akibatnya tidak menyetujui tindakan apa pun secara positif.
Jangan bingung "Jangan perlihatkan kotak dialog ini" dengan "Ingat jawaban ini". SHMessageBoxCheck tidak menyediakan fungsionalitas "Ingat jawaban ini". Jika pengguna memilih untuk menekan kotak pesan lagi, fungsi tidak mempertahankan tombol mana yang mereka klik. Sebagai gantinya, pemanggilan SHMessageBoxCheck berikutnya hanya mengembalikan nilai yang ditentukan oleh iDefault. Pertimbangkan contoh berikut.
int iResult = SHMessageBoxCheck(hwnd,
TEXT("Do you want to exit without saving?"),
TEXT("Warning"),
MB_YESNO,
IDNO,
TEXT("{d9108ba3-9a61-4398-bfbc-b02102c77e8a}");
Jika pengguna memilih Di masa mendatang, jangan perlihatkan kotak dialog ini dan klik tombol Ya , SHMessageBoxCheck mengembalikan IDYES. Namun, lain kali kode ini dijalankan, SHMessageBoxCheck tidak mengembalikan IDYES, meskipun pengguna memilih Ya pada awalnya. Sebaliknya, ia mengembalikan IDNO, karena itu adalah nilai yang ditentukan oleh iDefault.
Tombol default yang ditampilkan oleh kotak pesan harus setuju dengan nilai iDefault Anda. Kurangnya dukungan untuk bendera MB_DEFBUTTON2 berarti bahwa iDefault harus diatur ke IDOK jika Anda telah menentukan bendera MB_OK atau MB_OKCANCEL. Nilai iDefault harus diatur ke IDYES jika Anda telah mengatur bendera MB_YESNO.
SHMessageBoxCheck merekam kotak pesan yang telah dipilih pengguna untuk ditekan di bawah kunci registri berikut.
HKEY_CURRENT_USER Software Microsoft Windows CurrentVersion Explorer LowRegistry DontShowMeThisDialogAgain
Catatan
Header shlwapi.h mendefinisikan SHMessageBoxCheck sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | shlwapi.h |
DLL | Shlwapi.dll (versi 5.0 atau yang lebih baru) |