Compartilhar via


Como: Fazer a ligação com o Windows Forms de dados DDX/DDV

DDX_ManagedControl chamadas CWinFormsControl::CreateManagedControl Para criar um controle correspondendo o ID do controle de recurso. Se você usar DDX_ManagedControl para um CWinFormsControl controle (no Assistente gerou código), você deve não telefonar CreateManagedControl explicitamente para o mesmo controle.

De telefonarDDX_ManagedControl em CWnd::DoDataExchange Para criar controles de recurso IDs. Para troca de dados, você não precisa usar as funções DDX/DDV com controles Windows Forms.Em vez disso, você pode colocar código para acessar sistema autônomo propriedades do controle gerenciado no DoDataExchange método de sua classe de caixa de diálogo (ou modo de exibição), sistema autônomo no exemplo a seguir.

O exemplo a seguir mostra como BIND uma seqüência de caracteres de C++ nativa a um controle de usuário .NET.

Exemplo

A seguir é um exemplo de vinculação de dados DDX/DDV de uma de seqüência de caracteres MFC m_str com definido pelo usuário NameText propriedade de um controle de usuário .NET.

O controle é criado quando CDialog::OnInitDialog chamadas CMyDlg::DoDataExchange pela primeira vez, portanto, qualquer código que faz referência m_UserControl deve vir após a DDX_ManagedControl Chame.

Você pode implementar este código no aplicativo MFC01 criado em Como: Criar o controle de usuário e host em uma caixa de diálogo.

Coloque o seguinte código na declaração de CMFC01Dlg:

class CMFC01Dlg : public CDialog
{
   CWinFormsControl<WindowsControlLibrary1::UserControl1> m_MyControl;
   CString m_str;
};

Coloque o seguinte código na implementação do CMFC01Dlg:

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

Agora adicionaremos o método do manipulador de um clicar no botão OK.clicar no Modo de exibição de recurso guia.No modo de exibição de recurso, clicar duas vezes em IDD_MFC01_DIALOG. O recurso de caixa de diálogo aparece no Editor de recursos.Duplo clicar no botão OK

Definir o manipulador sistema autônomo segue.

void CMFC01Dlg::OnBnClickedOk()
{
   AfxMessageBox(CString(m_MyControl.GetControl()->textBox1->Text));
   OnOK();
}

E adicione a seguinte linha para a implementação de CMFC01Dlg::OnInitDialog() BOOL.

   m_MyControl.GetControl()->textBox1->Text = "hello";

Agora já é possível compilar e executar o aplicativo.Observe que qualquer texto na caixa de texto serão ser exibido em uma caixa de mensagem pop-up quando o aplicativo é fechado.

Consulte também

Referência

Classe CWinFormsControl

DDX_ManagedControl

CWnd::DoDataExchange