title: Read text from edit control in MFC and VS2010
body: <p>I'm writing a simple MFC application with a Dialog window and some buttons.
  I added also a edit control in order to let user insert a text string.</p>
  
  <p>I'd like to read the value which is present in the edit control and to store it in a string but i do not know how to do this.</p>
  
  <p>I have no compilation error, but I always read only a "." mark.</p>
  
  <p>I added a variable name to the text edit control which is <code>filepath1</code> and this is the code:</p>
  
  <pre><code>    // CMFC_1Dlg dialog
      class CMFC_1Dlg : public CDialogEx
      {
      // Construction
      public:
          CMFC_1Dlg(CWnd* pParent = NULL);    // standard constructor
  
      // Dialog Data
          enum { IDD = IDD_MFC_1_DIALOG };
  
          protected:
          virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  
  
      // Implementation
      protected:
          HICON m_hIcon;
  
          // Generated message map functions
          virtual BOOL OnInitDialog();
          afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
          afx_msg void OnPaint();
          afx_msg HCURSOR OnQueryDragIcon();
          DECLARE_MESSAGE_MAP()
      public:
          afx_msg void OnBnClickedButton1();
          afx_msg void OnBnClickedButton2();
          afx_msg void OnEnChangeEdit1();
          CString filePath1;
      }
  
      //...
  void CMFC_1Dlg::OnSysCommand(UINT nID, LPARAM lParam)
  {
      if ((nID &amp; 0xFFF0) == IDM_ABOUTBOX)
      {
          CAboutDlg dlgAbout;
          dlgAbout.DoModal();
      }
      else
      {
          CDialogEx::OnSysCommand(nID, lParam);
      }
  }
  
      CMFC_1Dlg::CMFC_1Dlg(CWnd* pParent /*=NULL*/)
          : CDialogEx(CMFC_1Dlg::IDD, pParent)
          ,filePath1(("..\\Experiments\\Dirs\\"))
      {
          m_hIcon = AfxGetApp()-&gt;LoadIcon(IDR_MAINFRAME);
      }
  
      void CMFC_1Dlg::DoDataExchange(CDataExchange* pDX)
      {
          CDialogEx::DoDataExchange(pDX);
          DDX_Text(pDX, IDC_EDIT1, filePath1);
  
      }
  
      // then i try to get the string value with
      CString txtname=filePath1;
      _cprintf("Value %s\n", txtname); // but i always read just a "."
  </code></pre>