Bagikan melalui


Kelas CDataExchange

Mendukung rutinitas pertukaran data dialog (DDX) dan validasi data dialog (DDV) yang digunakan oleh kelas Microsoft Foundation.

Sintaks

class CDataExchange

Anggota

Konstruktor Publik

Nama Deskripsi
CDataExchange::CDataExchange Membuat CDataExchange objek.

Metode Publik

Nama Deskripsi
CDataExchange::Fail Dipanggil ketika validasi gagal. Mengatur ulang fokus ke kontrol sebelumnya dan melemparkan pengecualian.
CDataExchange::P repareCtrl Menyiapkan kontrol yang ditentukan untuk pertukaran data atau validasi. Gunakan untuk kontrol nonedit.
CDataExchange::P repareEditCtrl Menyiapkan kontrol edit yang ditentukan untuk pertukaran data atau validasi.
CDataExchange::P repareOleCtrl Menyiapkan kontrol OLE yang ditentukan untuk pertukaran data atau validasi. Gunakan untuk kontrol nonedit.

Anggota Data Publik

Nama Deskripsi
CDataExchange::m_bSaveAndValidate Bendera untuk arah DDX dan DDV.
CDataExchange::m_pDlgWnd Kotak dialog atau jendela tempat pertukaran data berlangsung.

Keterangan

CDataExchange tidak memiliki kelas dasar.

Gunakan kelas ini jika Anda menulis rutinitas pertukaran data untuk jenis atau kontrol data kustom, atau jika Anda menulis rutinitas validasi data Anda sendiri. Untuk informasi selengkapnya tentang menulis rutinitas DDX dan DDV Anda sendiri, lihat Catatan Teknis 26. Untuk gambaran umum DDX dan DDV, lihat Dialog Pertukaran Data dan Validasi dan Kotak Dialog.

Objek CDataExchange menyediakan informasi konteks yang diperlukan agar DDX dan DDV dapat berlangsung. Bendera m_bSaveAndValidate FALSE saat DDX digunakan untuk mengisi nilai awal kontrol dialog dari anggota data. Bendera m_bSaveAndValidate TRUE ketika DDX digunakan untuk mengatur nilai kontrol dialog saat ini ke anggota data dan kapan DDV digunakan untuk memvalidasi nilai data. Jika validasi DDV gagal, prosedur DDV akan menampilkan kotak pesan yang menjelaskan kesalahan input. Prosedur DDV kemudian akan memanggil Fail untuk mengatur ulang fokus ke kontrol yang menyinggung dan melemparkan pengecualian untuk menghentikan proses validasi.

Hierarki Warisan

CDataExchange

Persyaratan

Header: afxwin.h

CDataExchange::CDataExchange

Panggil fungsi anggota ini untuk membuat CDataExchange objek.

CDataExchange(
    CWnd* pDlgWnd,
    BOOL bSaveAndValidate);

Parameter

pDlgWnd
Penunjuk ke jendela induk yang berisi kontrol. Biasanya ini adalah objek turunan CDialog.

bSaveAndValidate
Jika TRUE, objek ini memvalidasi data, lalu menulis data dari kontrol ke anggota. Jika FALSE, objek ini akan memindahkan data dari anggota ke kontrol.

Keterangan

CDataExchange Buat objek sendiri untuk menyimpan informasi tambahan di objek pertukaran data untuk diteruskan ke fungsi anggota CWnd::D oDataExchange jendela Anda.

Contoh

CYourDataExchange dx(this, FALSE);
try
{
   DoDataExchange(&dx);
}
catch (CUserException *pe)
{
   // some part of the exchange went wrong
   // but the user has already been notified
   pe->Delete();
}

CDataExchange::Fail

Kerangka kerja memanggil fungsi anggota ini ketika operasi validasi data dialog (DDV) gagal.

void Fail();

Keterangan

Fail memulihkan fokus dan pilihan ke kontrol yang validasinya gagal (jika ada kontrol untuk dipulihkan). Fail kemudian melempar pengecualian jenis CUserException untuk menghentikan proses validasi. Pengecualian menyebabkan kotak pesan yang menjelaskan kesalahan ditampilkan. Setelah validasi DDV gagal, pengguna dapat memasukkan kembali data dalam kontrol yang menyinggung.

Implementor rutinitas DDV kustom dapat memanggil Fail dari rutinitas mereka ketika validasi gagal.

Untuk informasi selengkapnya tentang menulis rutinitas DDX dan DDV Anda sendiri, lihat Catatan Teknis 26. Untuk gambaran umum DDX dan DDV, lihat Dialog Pertukaran Data dan Validasi dan Topik Kotak Dialog.

CDataExchange::m_bSaveAndValidate

Bendera ini menunjukkan arah operasi pertukaran data dialog (DDX).

BOOL m_bSaveAndValidate;

Keterangan

Bendera bukan nol jika CDataExchange objek digunakan untuk memindahkan data dari kontrol dialog ke anggota data kelas dialog setelah pengguna mengedit kontrol. Bendera adalah nol jika objek digunakan untuk menginisialisasi kontrol dialog dari anggota data kelas dialog.

Bendera juga bukan nol selama validasi data dialog (DDV).

Untuk informasi selengkapnya tentang menulis rutinitas DDX dan DDV Anda sendiri, lihat Catatan Teknis 26. Untuk gambaran umum DDX dan DDV, lihat Dialog Pertukaran Data dan Validasi dan Topik Kotak Dialog.

CDataExchange::m_pDlgWnd

Berisi penunjuk ke objek CWnd tempat pertukaran data dialog (DDX) atau validasi (DDV) berlangsung.

CWnd* m_pDlgWnd;

Keterangan

Objek ini biasanya merupakan objek CDialog . Implementor rutinitas DDX atau DDV kustom dapat menggunakan penunjuk ini untuk mendapatkan akses ke jendela dialog yang berisi kontrol tempat mereka beroperasi.

Untuk informasi selengkapnya tentang menulis rutinitas DDX dan DDV Anda sendiri, lihat Catatan Teknis 26. Untuk gambaran umum DDX dan DDV, lihat Dialog Pertukaran Data dan Validasi dan Topik Kotak Dialog.

CDataExchange::P repareCtrl

Kerangka kerja memanggil fungsi anggota ini untuk menyiapkan kontrol yang ditentukan untuk pertukaran data dialog (DDX) dan validasi (DDV).

HWND PrepareCtrl(int nIDC);

Parameter

nIDC
ID kontrol yang akan disiapkan untuk DDX atau DDV.

Tampilkan Nilai

HWND kontrol yang disiapkan untuk DDX atau DDV.

Keterangan

Gunakan PrepareEditCtrl sebagai gantinya untuk kontrol edit; gunakan fungsi anggota ini untuk semua kontrol lainnya.

Persiapan terdiri dari menyimpan HWND kontrol di CDataExchange kelas . Kerangka kerja menggunakan handel ini untuk memulihkan fokus ke kontrol yang sebelumnya difokuskan jika terjadi kegagalan DDX atau DDV.

Implementor rutinitas DDX atau DDV kustom harus memanggil PrepareCtrl semua kontrol non-edit yang mereka bertukar data melalui DDX atau memvalidasi data melalui DDV.

Untuk informasi selengkapnya tentang menulis rutinitas DDX dan DDV Anda sendiri, lihat Catatan Teknis 26. Untuk gambaran umum DDX dan DDV, lihat Dialog Pertukaran Data dan Validasi dan Topik Kotak Dialog.

CDataExchange::P repareEditCtrl

Kerangka kerja memanggil fungsi anggota ini untuk menyiapkan kontrol edit yang ditentukan untuk pertukaran data dialog (DDX) dan validasi (DDV).

HWND PrepareEditCtrl(int nIDC);

Parameter

nIDC
ID kontrol edit yang akan disiapkan untuk DDX atau DDV.

Tampilkan Nilai

HWND kontrol edit yang disiapkan untuk DDX atau DDV.

Keterangan

Gunakan PrepareCtrl sebagai gantinya untuk semua kontrol non-edit.

Persiapan terdiri dari dua hal. Pertama, PrepareEditCtrl menyimpan HWND kontrol di CDataExchange kelas . Kerangka kerja menggunakan handel ini untuk memulihkan fokus ke kontrol yang sebelumnya difokuskan jika terjadi kegagalan DDX atau DDV. Kedua, PrepareEditCtrl mengatur bendera di CDataExchange kelas untuk menunjukkan bahwa kontrol yang datanya sedang ditukar atau divalidasi adalah kontrol edit.

Implementor rutinitas DDX atau DDV kustom harus memanggil PrepareEditCtrl semua kontrol edit yang datanya bertukar melalui DDX atau memvalidasi data melalui DDV.

Untuk informasi selengkapnya tentang menulis rutinitas DDX dan DDV Anda sendiri, lihat Catatan Teknis 26. Untuk gambaran umum DDX dan DDV, lihat Dialog Pertukaran Data dan Validasi dan Topik Kotak Dialog.

CDataExchange::P repareOleCtrl

Kerangka kerja memanggil fungsi anggota ini untuk menyiapkan kontrol OLE yang ditentukan untuk pertukaran data dialog (DDX) dan validasi (DDV).

COleControlSite* PrepareOleCtrl(int nIDC);

Parameter

nIDC
ID kontrol OLE yang akan disiapkan untuk DDX atau DDV.

Tampilkan Nilai

Penunjuk ke situs kontrol OLE.

Keterangan

Gunakan PrepareEditCtrl sebagai gantinya untuk kontrol edit atau PrepareCtrl untuk semua kontrol non-OLE lainnya.

Implementor rutinitas DDX atau DDV kustom harus memanggil PrepareOleCtrl semua kontrol OLE tempat mereka bertukar data melalui DDX atau memvalidasi data melalui DDV.

Untuk informasi selengkapnya tentang menulis rutinitas DDX dan DDV Anda sendiri, lihat Catatan Teknis 26. Untuk gambaran umum DDX dan DDV, lihat Dialog Pertukaran Data dan Validasi dan Topik Kotak Dialog.

Baca juga

VIEWEX Sampel MFC
Bagan Hierarki
CWnd::D oDataExchange
CWnd::UpdateData