DDX
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



DDX Expand / Collapse
Автор
Сообщение
25.07.2001 2:38
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 07.04.2002 0:00
Сообщ.: 59, Visits: 650
как с помощью DDX внести данные в контрол?
Сообщ. #717394
25.07.2001 20:03
Supreme Being

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

С уважением, Владимир.
Сообщ. #717540
25.07.2001 20:20
Forum Guru

Forum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum GuruForum Guru

участник
Last Login: 07.04.2002 0:00
Сообщ.: 59, Visits: 650
Спасибо. так и делал, только в UpdateData() передавал TRUE.
Сообщ. #717544
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 1:17