Bagikan melalui


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)