Bagikan melalui


Fungsi SHMessageBoxCheckA (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 SHMessageBoxCheckA(
  [in, optional] HWND   hwnd,
  [in]           LPCSTR pszText,
  [in]           LPCSTR pszCaption,
                 UINT   uType,
                 int    iDefault,
  [in]           LPCSTR 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 bendera berikut.

MB_ICONHAND

Tampilkan ikon hentikan-tanda tangan.

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.

Menampilkan 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 pengembalian 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 secara positif menyetujui tindakan apa pun.

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. Sebaliknya, 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 kepada saya dan mengklik tombol Ya , SHMessageBoxCheck mengembalikan IDYES. Namun, lain kali kode ini dijalankan, SHMessageBoxCheck tidak mengembalikan IDYES, meskipun pengguna memilih Ya 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
                  DontShowMeThisDialogAgain

Catatan

Header shlwapi.h mendefinisikan SHMessageBoxCheck sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosedur 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

   
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)