Bagikan melalui


Fungsi DialogBoxIndirectParamA (winuser.h)

Membuat kotak dialog modal dari templat kotak dialog dalam memori. Sebelum menampilkan kotak dialog, fungsi meneruskan nilai yang ditentukan aplikasi ke prosedur kotak dialog sebagai parameter lParam dari pesan WM_INITDIALOG . Aplikasi dapat menggunakan nilai ini untuk menginisialisasi kontrol kotak dialog.

Sintaks

INT_PTR DialogBoxIndirectParamA(
  [in, optional] HINSTANCE       hInstance,
  [in]           LPCDLGTEMPLATEA hDialogTemplate,
  [in, optional] HWND            hWndParent,
  [in, optional] DLGPROC         lpDialogFunc,
  [in]           LPARAM          dwInitParam
);

Parameter

[in, optional] hInstance

Jenis: HINSTANCE

Handel ke modul yang membuat kotak dialog.

[in] hDialogTemplate

Jenis: LPCDLGTEMPLATE

Templat yang digunakan DialogBoxIndirectParam untuk membuat kotak dialog. Templat kotak dialog terdiri dari header yang menjelaskan kotak dialog, diikuti oleh satu atau beberapa blok data tambahan yang menjelaskan setiap kontrol dalam kotak dialog. Templat dapat menggunakan format standar atau format yang diperluas.

Dalam templat standar untuk kotak dialog, header adalah struktur DLGTEMPLATE diikuti oleh array panjang variabel tambahan. Data untuk setiap kontrol terdiri dari struktur DLGITEMTEMPLATE diikuti oleh array panjang variabel tambahan.

Dalam templat yang diperluas untuk kotak dialog, header menggunakan format DLGTEMPLATEEX dan definisi kontrol menggunakan format DLGITEMTEMPLATEEX .

[in, optional] hWndParent

Jenis: HWND

Handel ke jendela yang memiliki kotak dialog.

[in, optional] lpDialogFunc

Jenis: DLGPROC

Penunjuk ke prosedur kotak dialog. Untuk informasi selengkapnya tentang prosedur kotak dialog, lihat DialogProc.

[in] dwInitParam

Jenis: LPARAM

Nilai yang akan diteruskan ke kotak dialog di parameter lParam dari pesan WM_INITDIALOG .

Nilai kembali

Jenis: INT_PTR

Jika fungsi berhasil, nilai yang dikembalikan adalah parameter nResult yang ditentukan dalam panggilan ke fungsi EndDialog yang digunakan untuk mengakhiri kotak dialog.

Jika fungsi gagal karena parameter hWndParent tidak valid, nilai yang dikembalikan adalah nol. Fungsi mengembalikan nol dalam hal ini untuk kompatibilitas dengan versi Windows sebelumnya. Jika fungsi gagal karena alasan lain, nilai yang dikembalikan adalah –1. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Fungsi DialogBoxIndirectParam menggunakan fungsi CreateWindowEx untuk membuat kotak dialog. DialogBoxIndirectParam kemudian mengirim pesan WM_INITDIALOG ke prosedur kotak dialog. Jika templat menentukan gaya DS_SETFONT atau DS_SHELLFONT, fungsi juga mengirim pesan WM_SETFONT ke prosedur kotak dialog. Fungsi menampilkan kotak dialog (terlepas dari apakah templat menentukan gaya WS_VISIBLE ), menonaktifkan jendela pemilik, dan memulai perulangan pesannya sendiri untuk mengambil dan mengirim pesan untuk kotak dialog.

Saat prosedur kotak dialog memanggil fungsi EndDialog , DialogBoxIndirectParam menghancurkan kotak dialog, mengakhiri perulangan pesan, mengaktifkan jendela pemilik (jika sebelumnya diaktifkan), dan mengembalikan parameter nResult yang ditentukan oleh prosedur kotak dialog saat disebut EndDialog.

Dalam templat kotak dialog standar, struktur DLGTEMPLATE dan masing-masing struktur DLGITEMTEMPLATE harus diselaraskan pada batas DWORD . Array data pembuatan yang mengikuti struktur DLGITEMTEMPLATE juga harus diselaraskan pada batas DWORD . Semua array panjang variabel lainnya dalam templat harus diratakan pada batas WORD .

Dalam templat kotak dialog yang diperluas, header DLGTEMPLATEEX dan masing-masing definisi kontrol DLGITEMTEMPLATEEX harus diratakan pada batas DWORD . Array data pembuatan, jika ada, yang mengikuti struktur DLGITEMTEMPLATEEX juga harus diselaraskan pada batas DWORD . Semua array panjang variabel lainnya dalam templat harus diratakan pada batas WORD .

Semua string karakter dalam templat kotak dialog, seperti judul untuk kotak dialog dan tombol, harus berupa string Unicode.

Catatan

Header winuser.h mendefinisikan DialogBoxIndirectParam 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 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

CreateWindowEx

DLGITEMTEMPLATE

DLGITEMTEMPLATEEX

DLGTEMPLATE

DLGTEMPLATEEX

Kotak Dialog

Kotak Dialog

DialogBoxIndirect

DialogBoxParam

DialogProc

EndDialog

Referensi

WM_INITDIALOG

WM_SETFONT