|
|
|
Forum Guru
      
участник
Last Login: 07.04.2002 0:00
Сообщ.: 59,
Visits: 650
|
|
| как с помощью DDX внести данные в контрол?
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 10.11.2008 0:08
Сообщ.: 1 298,
Visits: 12 501
|
|
Для стандартной связки элемента управления и переменной в классе привязанном к форме, проще всего воспользоваться ClassWizard'ом - вкладка Member Variables: двойной щелчок мышки по ID эл. управления... В классе привязанном к этой форме ты получишь что-то вроде: ... //Установка начальных значений CTestDlg::CTestDlg() : CDialog(CTestDlg::IDD) { //{{AFX_DATA_INIT(CTestDlg) m_MyEdit = _T(""); //}}AFX_DATA_INIT } ... //Описание правил обмена... void CTestDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CTestDlg) DDX_Text(pDX, IDC_EDIT1, m_MyEdit); //}}AFX_DATA_MAP } ...
А далее все очень просто, внутри программы/класса ты работаешь с m_MyEdit, а снаружи пользователь работает с соответствующим контролом.
Если ты хочешь загрузить данные из контрола в переменные используешь функцию UpdateData(TRUE);, если наоборот UpdateData(FALSE);. Например,
void CTestDlg::OnButton1() { m_MyEdit = "Hello!"; UpdateData(FALSE); }
void CTestDlg::OnButton2() { UpdateData(TRUE); AfxMessageBox("Inside Edit is:" + m_MyEdit); }
С уважением, Владимир.
|
|
|
|
|
Forum Guru
      
участник
Last Login: 07.04.2002 0:00
Сообщ.: 59,
Visits: 650
|
|
| Спасибо. так и делал, только в UpdateData() передавал TRUE.
|
|
|
|