Nasıl yapılır: Windows Forms ile DDX/DDV Veri Bağlaması Yapma
DDX_ManagedControl, kaynak denetimi kimliğiyle eşleşen bir denetim oluşturmak için CWinFormsControl::CreateManagedControl öğesini çağırır. Bir CWinFormsControl
denetim için kullanıyorsanız DDX_ManagedControl
(sihirbaz tarafından oluşturulan kodda), aynı denetim için açıkça çağırmamalısınızCreateManagedControl
.
Kaynak kimliklerinden denetimler oluşturmak için CWnd::D oDataExchange'i arayınDDX_ManagedControl
. Veri alışverişi için Windows Forms denetimleriyle DDX/DDV işlevlerini kullanmanız gerekmez. Bunun yerine, aşağıdaki örnekte olduğu gibi, yönetilen denetimin DoDataExchange
özelliklerine erişmek için kodu iletişim kutusu (veya görünüm) sınıfınızın yöntemine yerleştirebilirsiniz.
Aşağıdaki örnekte yerel bir C++ dizesinin .NET kullanıcı denetimine nasıl bağlanacağınız gösterilmektedir.
Örnek: DDX/DDV veri bağlama
Aşağıda, .NET kullanıcı denetiminin kullanıcı tanımlı NameText
özelliğine sahip bir MFC dizesinin m_str
DDX/DDV veri bağlama örneği verilmiştir.
Denetim, CDialog::OnInitDialog ilk kez çağırdığında CMyDlg::DoDataExchange
oluşturulur, bu nedenle başvuruda m_UserControl
bulunan tüm kodların çağrıdan DDX_ManagedControl
sonra gelmesi gerekir.
Bu kodu, Nasıl yapılır: İletişim Kutusunda Kullanıcı Denetimi ve Ana Bilgisayar Oluşturma bölümünde oluşturduğunuz MFC01 uygulamasında uygulayabilirsiniz.
AŞAĞıDAKI kodu CMFC01Dlg bildirimine yerleştirin:
class CMFC01Dlg : public CDialog
{
CWinFormsControl<WindowsFormsControlLibrary1::UserControl1> m_MyControl;
CString m_str;
};
Örnek: DoDataExchange() Uygulama
AŞAĞıDAKI kodu CMFC01Dlg uygulamasına yerleştirin:
void CMFC01Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_ManagedControl(pDX, IDC_CTRL1, m_MyControl);
if (pDX->m_bSaveAndValidate) {
m_str = m_MyControl->textBox1->Text;
} else
{
m_MyControl->textBox1->Text = gcnew System::String(m_str);
}
}
Örnek: İşleyici yöntemi ekleme
Şimdi Tamam düğmesine tıklamak için işleyici yöntemini ekleyeceğiz. Kaynak Görünümü sekmesine tıklayın. Kaynak Görünümü'nde öğesine çift tıklayınIDD_MFC01_DIALOG
. İletişim kutusu kaynağı Kaynak Düzenleyicisi'nde görünür. Ardından Tamam düğmesine çift tıklayın..
İşleyiciyi aşağıdaki gibi tanımlayın.
void CMFC01Dlg::OnBnClickedOk()
{
AfxMessageBox(CString(m_MyControl.GetControl()->textBox1->Text));
OnOK();
}
Örnek: textBox metnini ayarlama
Aşağıdaki satırı BOOL CMFC01Dlg::OnInitDialog() uygulamasına ekleyin.
m_MyControl.GetControl()->textBox1->Text = "hello";
Artık uygulamayı derleyebilir ve çalıştırabilirsiniz. Uygulama kapatıldığında metin kutusundaki tüm metinlerin bir açılır ileti kutusunda görüntüleneceğine dikkat edin.
Ayrıca bkz.
CWinFormsControl Sınıfı
DDX_ManagedControl
CWnd::D oDataExchange