Связывание переменных с элементами диалоговых окон

ClassWizard поможет нам связать переменные класса с элементами диалогового окна. Запустите ClassWizard и перейдите на вкладку Member Variables (рис. 21).

Рис. 21

Выделите идентификатор текстового поля IDC_EDIT1 и нажмите кнопку Add Variable. Откроется окно Add Member Variable, изображенное на рис. 22. В нем присвоим имя переменной для хранения содержимого текстового поля. Занесем в поле Member variable name строку m_text и проследим, чтобы в списке Category был выбран пункт Value, а в списке Variable type – CString. Так связываються содержимое поля и переменная класса CString с именем m_text.

Рис. 22

После закрытия окна Add Member Variable в перечне идентификаторов ClassWizard появилась новая переменная m_text (рис. 23).

Рис. 23

Переменная для работы с тестовым полем готова. Теперь можно задать содержимое текстового поля в методе OnButton1().

void Dlg::OnButton1()

{

m_text = «Текст в диалоговом окне»;

}

Простое присвоение переменной текста еще не заставит текст появляться в диалоговом окне. Обмен информацией между переменной и элементом IDC_EDIT1 осуществляется в специальном методе, включенном ClassWizard в класс диалогового окна:

void Dlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

//{{AFX_DATA_MAP(Dlg)

DDX_Text(pDX, IDC_EDIT1, m_text);

//}}AFX_DATA_MAP

}

Для обновления текстового поля следует вызвать метод UpdateData():

void Dlg::OnButton1()

{

m_text = «Текст в диалоговом окне»;

UpdateData(false);

}

Вызов этого метода с параметром false заносит в текстовое поле значение переменной m_text. Вызов с параметром true присваивает переменной m_text содержимое текстового поля:

UpdateData(false) означает: IDC_EDIT = m_text;

UpdateData(true) означает: m_text = IDC_EDIT;

Строка перенесена в текстовое поле, пользователь может отредактировать ее перед нажатием кнопки Ок.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: