Aracılığıyla paylaş


İletişim Kutusu Veri Değişimi

DDX mekanizmasını kullanırsanız, genellikle işleyicinizde OnInitDialog veya iletişim kutusu oluşturucusunda iletişim kutusu nesnesinin üye değişkenlerinin başlangıç değerlerini ayarlarsınız. İletişim kutusu görüntülenmeden hemen önce, çerçevenin DDX mekanizması üye değişkenlerin değerlerini iletişim kutusundaki denetimlere aktarır ve iletişim kutusunun kendisi veya Createöğesine yanıt DoModal olarak görüntülendiğinde görüntülenir. in varsayılan uygulamasıOnInitDialog, iletişim kutusundaki denetimleri başlatmak için sınıfının CWnd üye işlevini çağırırUpdateData.CDialog

Aynı mekanizma, kullanıcı Tamam düğmesine tıkladığında (veya TRUE bağımsız değişkeniyle üye işlevini çağırdığınızdaUpdateData) denetimlerdeki değerleri üye değişkenlerine aktarır. İletişim kutusu veri doğrulama mekanizması, doğrulama kurallarını belirttiğiniz tüm veri öğelerini doğrular.

Aşağıdaki şekilde iletişim kutusu veri değişimi gösterilmektedir.

Diagram of data model and on screen dialog box data exchange.
İletişim Kutusu Veri Değişimi

UpdateData, geçirilen BOOL parametresi tarafından belirtildiği gibi her iki yönde de çalışır. Değişimi UpdateData gerçekleştirmek için bir CDataExchange nesne ayarlayın ve iletişim sınıfınızın 'nin DoDataExchange üye işlevini geçersiz kılmasını CDialogçağırır. DoDataExchange türünde CDataExchangebir bağımsız değişken alır. CDataExchange geçirilen UpdateData nesne, değişimin bağlamını temsil eder ve bu tür bilgileri değişimin yönü olarak tanımlar.

(veya bir Kod sihirbazı) geçersiz kıldığınızda DoDataExchange, veri üyesi (denetim) başına bir DDX işlevine çağrı belirtirsiniz. Her DDX işlevi, tarafından UpdateDatasizin DoDataExchange için geçirilen bağımsız değişkenin sağladığı CDataExchange bağlama göre her iki yönde de veri alışverişi yapmayı bilir.

MFC, farklı türlerde değişim için birçok DDX işlevi sağlar. Aşağıdaki örnekte, iki DDX işlevinin ve bir DDV işlevinin çağrıldığı bir DoDataExchange geçersiz kılma gösterilmektedir:

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);
}

DDX_ ve DDV_ satırları bir veri haritasıdır. Gösterilen örnek DDX ve DDV işlevleri sırasıyla bir onay kutusu denetimi ve düzenleme kutusu denetimi içindir.

Kullanıcı kalıcı bir iletişim kutusunu iptal ederse, OnCancel üye işlevi iletişim kutusunu sonlandırır ve DoModal IDCANCEL değerini döndürür. Bu durumda, iletişim kutusu ve iletişim kutusu nesnesi arasında veri alışverişi yapılmaz.

Ayrıca bkz.

İletişim Kutusu Veri Değişimi ve Doğrulaması
MFC'de İletişim Kutularıyla Çalışma
İletişim Verisi Doğrulama