Dialog Data Exchange
Jika Anda menggunakan mekanisme DDX, Anda mengatur nilai awal variabel anggota objek dialog, biasanya di handler atau OnInitDialog
konstruktor dialog. Segera sebelum dialog ditampilkan, mekanisme DDX kerangka kerja mentransfer nilai variabel anggota ke kontrol dalam kotak dialog, di mana mereka muncul ketika kotak dialog itu sendiri muncul sebagai respons terhadap DoModal
atau Create
. Implementasi OnInitDialog
default dalam CDialog
memanggil UpdateData
fungsi anggota kelas CWnd
untuk menginisialisasi kontrol dalam kotak dialog.
Mekanisme yang sama mentransfer nilai dari kontrol ke variabel anggota ketika pengguna mengklik tombol OK (atau setiap kali Anda memanggil UpdateData
fungsi anggota dengan argumen TRUE). Mekanisme validasi data dialog memvalidasi item data apa pun yang Anda tentukan aturan validasinya.
Gambar berikut mengilustrasikan pertukaran data dialog.
Dialog Data Exchange
UpdateData
bekerja di kedua arah, seperti yang ditentukan oleh parameter BOOL yang diteruskan ke sana. Untuk melakukan pertukaran, UpdateData
siapkan CDataExchange
objek dan panggil penggantian kelas dialog Anda dari CDialog
DoDataExchange
fungsi anggota. DoDataExchange
mengambil argumen jenis CDataExchange
. Objek CDataExchange
yang diteruskan untuk UpdateData
mewakili konteks pertukaran, menentukan informasi seperti arah pertukaran.
Saat Anda (atau wizard Kode) mengambil alih DoDataExchange
, Anda menentukan panggilan ke satu fungsi DDX per anggota data (kontrol). Setiap fungsi DDX tahu cara bertukar data di kedua arah berdasarkan konteks yang disediakan oleh argumen yang CDataExchange
diteruskan ke Anda DoDataExchange
oleh UpdateData
.
MFC menyediakan banyak fungsi DDX untuk berbagai jenis pertukaran. Contoh berikut menunjukkan DoDataExchange
penimpaan di mana dua fungsi DDX dan satu fungsi DDV dipanggil:
void CTestDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Check(pDX, IDC_MY_CHECKBOX, m_bVal);
DDX_Text(pDX, IDC_MY_TEXTBOX, m_strName);
DDV_MaxChars(pDX, m_strName, 20);
}
Garis DDX_
dan DDV_
adalah peta data. Contoh fungsi DDX dan DDV yang ditampilkan masing-masing adalah untuk kontrol kotak centang dan kontrol kotak edit.
Jika pengguna membatalkan kotak dialog modal, OnCancel
fungsi anggota mengakhiri kotak dialog dan DoModal
mengembalikan nilai IDCANCEL. Dalam hal ini, tidak ada data yang dipertukarkan antara kotak dialog dan objek dialog.
Baca juga
Pertukaran dan Validasi Data Dialog
Bekerja dengan Kotak Dialog di MFC
Validasi Data Dialog
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk