İ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.
İ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 CDataExchange
bir 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 UpdateData
sizin 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