Выбрать главу

• Код, который вы ввели содержит два оператора:

• Первый присваивает переменной m_TestEdit типа CString значение NULL, т. е. окно редактирования не будет содержать никакого текста.

• А второй оператор UpdateData(FALSE); обновляет экран, т. е. сообщает переменным диалогового окна текущие их значения. При выполнении этого оператора весь текст из окна редактирования удалится.

• Теперь сохраните свою работу, выбрав Save All в меню File.

• Чтобы увидеть в действии код программы выполните и запустите ее.

• Напишите что-нибудь в окне редактирования.

• Щелкните на кнопку Clear, вы видите что текст стирается.

• Теперь нажмите на кнопку Test в окне редактирования появится текст This is a Test.

• Если все это выполняется, значит вы совершенно правильно связали события с кнопками Test и Clear.

Связывание кода с событием BN_CLICKED флажка Visible

При включении флажка Visible программа Test.Exe должна сделать окно редактирования невидимым, а при выключении — наоборот.

• Чтобы связать код с событием BN_CLICKED флажка Visible, выполните следующие действия:

• Выберете ClassWizard в меню View

• Выберете закладку Message Maps в панели ClassWizard

• Используйте диалоговую панель ClassWizard для выбора следующего события:

Class Name: CTestDIg

Object ID: IDC_VISIBLE_CHECK

Messages: BN_CLICKED

• Щелкните на кнопку Add Fucntion и в раскрывшемся окне нажмите кнопку ОК.

Нажмите кнопку Edit Code и напишите следующий код в функции OnVisibleButton():

void CTestDIg::OnVsibieCheck()

{

// TODO: Add your control notification handler code here

////////Мой код начинается здесь///////////

////Обновить значения переменных элементов управления,

////(содержимое экрана передается переменным элементов управления) UpdateData(TRUE);

///Если отметка флажка Visible зделать окно редактирования видимым

///А если нет — то невидимым if(m_ VisibleCheck==TRUE)

GetDigItem(IDC_TEST_EDIT)->ShowWindow(SW_SHOW);

else

GetDigItem(IDC_TEST_EDIT)->ShowWindow(SW_HIDE);

////////Мой код начинается здесь///////////

}

• Код который вы ввели содержит следующие операторы:

• UpdateData(TRUE); — этот оператор обновляет значения переменных элементов управления текущими значениями, которые содержаться на экране. Т. е. при нажатии на флажок переменная может принимать два значения TRUE или FALSE, TRUE — это когда флажок включен, a FASLE — наоборот. Значит при выполнении этого оператора переменная флажка управления принимает текущее положение флажка и все остальные переменные обновляются значениями, которые отображаются на экране.

• Следующие оператор проверяет включен или выключен флажок. Если он включен, то выполняется оператор GetDlgItem(IDC_TEST_EDIT)->ShowWindow(SW_SHOW);, где GetDlgItem(IDC_TEST_EDIT) извлекает указатель на элемент управления, а функция ShowWindow(SW_SHOW); с параметром SW_SHOW, делает окно редактирования видимым.

• А если флажок не отмечен, то выполняется также самая функция ShowWindow(); с параметром SW_HIDE, этот параметр означает спрятать окно редактирования.

Связывание кода с событием BN_CLICKED флажка Visible

При включении флажка Enable программа Test.Exe должна сделать окно редактирования доступным, а при выключении — недоступным.

• Чтобы связать код с событием BN_CLICKED флажка Enable, выполните следующие действия:

• Выберете ClassWizard в меню View

• Выберете закладку Message Maps в панели ClassWizard

• Используйте диалоговую панель ClassWizard для выбора следующего события:

Class Name: CTestDIg

Object ID: IDC_ENABLE_CHECK

Messages: BN_CLICKED

• Щелкните на кнопку Add Fucntion и в раскрывшемся окне нажмите кнопку ОК.

• Нажмите кнопку Edit Code и напишите следующий код в функции OnEnableButton():

void CTestDIg::OnEnableCheck()

{

// TODO: Add your control notification handler code here

////////Мой код начинается здесь///////////

////Обновить значения переменных элементов управления,

////(содержимое экрана передается переменным элементов управления)

UpdateData(TRUE);

///Если отметка флажка Enable зделать окно редактирования видимым

///А если нет — то невидимым

if(m_EnableCheck==TRUE)

GetDlgItem(IDC_TEST_EDIT)->EnableWindow(SW_SHOW);

else

GetDlgItem(IDC_TEST_EDIT)->EnableWindow(SW_HIDE);