Fungsi MessageBoxW (winuser.h)
Menampilkan kotak dialog modal yang berisi ikon sistem, sekumpulan tombol, dan pesan khusus aplikasi singkat, seperti informasi status atau kesalahan. Kotak pesan mengembalikan nilai bilangan bulat yang menunjukkan tombol mana yang diklik pengguna.
Sintaks
int MessageBoxW(
[in, optional] HWND hWnd,
[in, optional] LPCWSTR lpText,
[in, optional] LPCWSTR lpCaption,
[in] UINT uType
);
Parameter
[in, optional] hWnd
Jenis: HWND
Handel ke jendela pemilik kotak pesan yang akan dibuat. Jika parameter ini NULL, kotak pesan tidak memiliki jendela pemilik.
[in, optional] lpText
Jenis: LPCTSTR
Pesan yang akan ditampilkan. Jika string terdiri dari lebih dari satu baris, Anda dapat memisahkan garis menggunakan karakter pengembalian pengangkutan dan/atau linefeed di antara setiap baris.
[in, optional] lpCaption
Jenis: LPCTSTR
Judul kotak dialog. Jika parameter ini NULL, judul defaultnya adalah Kesalahan.
[in] uType
Jenis: UINT
Konten dan perilaku kotak dialog. Parameter ini bisa menjadi kombinasi bendera dari grup bendera berikut.
Untuk menunjukkan tombol yang ditampilkan dalam kotak pesan, tentukan salah satu nilai berikut ini.
Nilai | Makna |
---|---|
|
Kotak pesan berisi tiga tombol dorong: Batalkan, Coba Lagi, dan Abaikan. |
|
Kotak pesan berisi tiga tombol dorong: Batal, Coba Lagi, Lanjutkan. Gunakan tipe kotak pesan ini alih-alih MB_ABORTRETRYIGNORE. |
|
Menambahkan tombol Bantuan ke kotak pesan. Saat pengguna mengklik tombol Bantuan atau menekan F1, sistem mengirim pesan WM_HELP kepada pemilik. |
|
Kotak pesan berisi satu tombol pendorongan: OK. Ini adalah default. |
|
Kotak pesan berisi dua tombol dorong: OK dan Batal. |
|
Kotak pesan berisi dua tombol pendorongan: Coba Lagi dan Batalkan. |
|
Kotak pesan berisi dua tombol dorong: Ya dan Tidak. |
|
Kotak pesan berisi tiga tombol dorong: Ya, Tidak, dan Batal. |
Untuk menampilkan ikon dalam kotak pesan, tentukan salah satu nilai berikut ini.
Untuk menunjukkan tombol default, tentukan salah satu nilai berikut.
Untuk menunjukkan modalitas kotak dialog, tentukan salah satu nilai berikut.
Untuk menentukan opsi lain, gunakan satu atau beberapa nilai berikut.
Nilai | Makna |
---|---|
|
Sama seperti desktop stasiun jendela interaktif. Untuk informasi selengkapnya, lihat Window Stations.
Jika desktop input saat ini bukan desktop default, MessageBox tidak kembali hingga pengguna beralih ke desktop default. |
|
Teks dibenarkan kanan. |
|
Menampilkan pesan dan caption teks menggunakan urutan pembacaan kanan-ke-kiri pada sistem Ibrani dan Arab. |
|
Kotak pesan menjadi jendela latar depan. Secara internal, sistem memanggil fungsi SetForegroundWindow untuk kotak pesan. |
|
Kotak pesan dibuat dengan gaya jendela WS_EX_TOPMOST . |
|
Pemanggil adalah layanan yang memberi tahu pengguna tentang suatu peristiwa. Fungsi ini menampilkan kotak pesan pada desktop aktif saat ini, meskipun tidak ada pengguna yang masuk ke komputer.
Layanan Terminal: Jika utas panggilan memiliki token peniruan, fungsi mengarahkan kotak pesan ke sesi yang ditentukan dalam token peniruan. Jika bendera ini diatur, parameter hWnd harus NULL. Ini agar kotak pesan dapat muncul di desktop selain desktop yang sesuai dengan hWnd. Untuk informasi tentang pertimbangan keamanan sehubungan dengan penggunaan bendera ini, lihat Layanan Interaktif. Secara khusus, ketahuilah bahwa bendera ini dapat menghasilkan konten interaktif pada desktop terkunci dan karenanya harus digunakan hanya untuk serangkaian skenario yang sangat terbatas, seperti kelelahan sumber daya. |
Mengembalikan nilai
Jenis: int
Jika kotak pesan memiliki tombol Batal , fungsi mengembalikan nilai IDCANCEL jika tombol ESC ditekan atau tombol Batal dipilih. Jika kotak pesan tidak memiliki tombol Batal , menekan ESC tidak akan berpengaruh - kecuali ada tombol MB_OK. Jika tombol MB_OK ditampilkan dan pengguna menekan ESC, nilai yang dikembalikan adalah IDOK.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Jika fungsi berhasil, nilai yang dikembalikan adalah salah satu nilai item menu berikut.
Mengembalikan kode/nilai | Deskripsi |
---|---|
|
Tombol Batalkan dipilih. |
|
Tombol Batal dipilih. |
|
Tombol Lanjutkan dipilih. |
|
Tombol Abaikan dipilih. |
|
Tombol Tidak dipilih. |
|
Tombol OK dipilih. |
|
Tombol Coba Lagi dipilih. |
|
Tombol Coba Lagi dipilih. |
|
Tombol Ya dipilih. |
Keterangan
Ikon sistem berikut dapat digunakan dalam kotak pesan dengan mengatur parameter uType ke nilai bendera yang sesuai.
Ikon | Nilai bendera |
---|---|
MB_ICONHAND, MB_ICONSTOP, atau MB_ICONERROR | |
MB_ICONQUESTION | |
MB_ICONEXCLAMATION atau MB_ICONWARNING | |
MB_ICONASTERISK atau MB_ICONINFORMATION |
Menambahkan dua tanda kanan-ke-kiri (RLM), diwakili oleh karakter pemformatan Unicode U+200F, di awal string tampilan MessageBox ditafsirkan oleh mesin penyajian MessageBox sehingga menyebabkan urutan pembacaan MessageBox dirender sebagai kanan-ke-kiri (RTL).
Ketika Anda menggunakan kotak pesan modal sistem untuk menunjukkan bahwa sistem kehabisan memori, string yang ditunjukkan oleh parameter lpText dan lpCaption tidak boleh diambil dari file sumber daya karena upaya untuk memuat sumber daya mungkin gagal.
Jika Anda membuat kotak pesan saat kotak dialog ada, gunakan handel ke kotak dialog sebagai parameter hWnd . Parameter hWnd tidak boleh mengidentifikasi jendela anak, seperti kontrol dalam kotak dialog.
Contoh
Dalam contoh berikut, aplikasi menampilkan kotak pesan yang meminta tindakan kepada pengguna setelah kondisi kesalahan terjadi. Kotak pesan menampilkan pesan yang menjelaskan kondisi kesalahan dan cara mengatasinya. Gaya MB_CANCELTRYCONTINUE mengarahkan MessageBox untuk menyediakan tiga tombol yang dapat dipilih pengguna untuk melanjutkan. Gaya MB_DEFBUTTON2 mengatur fokus default pada tombol kedua kotak pesan, dalam hal ini, tombol Coba Lagi .
int DisplayResourceNAMessageBox()
{
int msgboxID = MessageBox(
NULL,
(LPCWSTR)L"Resource not available\nDo you want to try again?",
(LPCWSTR)L"Account Details",
MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2
);
switch (msgboxID)
{
case IDCANCEL:
// TODO: add code
break;
case IDTRYAGAIN:
// TODO: add code
break;
case IDCONTINUE:
// TODO: add code
break;
}
return msgboxID;
}
Gambar berikut menunjukkan output dari contoh kode sebelumnya:
Untuk contoh kotak pesan lain, lihat Menampilkan Kotak Pesan.
Catatan
Header winuser.h mendefinisikan MessageBox 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
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winuser.h (sertakan Windows.h) |
Pustaka | User32.lib |
DLL | User32.dll |
Set API | ext-ms-win-ntuser-dialogbox-l1-1-0 (diperkenalkan dalam Windows 8) |
Lihat juga
Konseptual
Sumber Daya Lain
Referensi