Чтение онлайн

на главную - закладки

Жанры

Интернет-журнал "Домашняя лаборатория", 2007 №1
Шрифт:

• Следующие оператор проверяет включен или выключен флажок. Если он включен, то выполняется оператор 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);

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

}

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

UpdateData(TRUE) — обновляет переменные элементов управления текущими их значениями на экране. После выполнения этого оператора переменной m_EnableCheck присваивается текущее значение флажка Enable.

• Следующие операторы имеют ту же конструкцию, как и у флажка Visible, но только функция ShowWindow заменена на EnableWindow, которая предназначена для того, чтобы элемент управления был недоступен или доступен. Она имеет те же параметры, что и функция ShowWindow.

Связывание кода с событием EN_CHANGE окна редактирования

При вводе текста и его изменении в окне редактирования, возникает событие EN_CHANGE. В нашей программе при вводе слова CALCULATOR запускается калькулятор, а при вводе Paint — графический редактор Paint.

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

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

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

• Используйте

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

Class Name: CTestDIg

Object ID: IDC_TEST_EDIT

Messages: EN_CHANGE

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

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

void СТestDig::OnChange TestEditQ

{

// TODO: Add your control notification handler code here

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

///Обновить переменные

UpdateData(TRUE);

///Создать переменную типа CString, присвоить ей значение

///переменной m_ TestEdit и выполнить перевод символов в верхний

///регистр.

CString UpperVaiue;

UpperVaiue=m_ TestEdit;

UpperValue.MakeUpper;

///Если в окне редактирования напечатано PAINT

///запускается редактор PAINT и окно редактирования становится пустым.

if(UpperValue== "PAINT")

{

system("pbrush.exe "); m_TestEdit=" ";

UpdateData(FALSE);

///Если в окне редактирования напечатано CALCULATOR ///запускается калькулятор и окно редактирования становится пустым.

if(UpperVatoe== "CALCULA TOR")

{

system("calc.exe ")} m_TestEdit="

UpdateData(FALSE);

}

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

}

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

UpdateData(TRUE); обновляет переменную m_TestEdit значением содержимого окна редактирования, при каждом его изменении, так как окно редактирования связано с событием EN_CHANGE.

• Следующий оператор CString UpperValue; создает новую переменную типа CString.

• Затем переменной UpperValue приравнивается значение переменной m_TestEdit, это можно сделать, так как они имеют одинаковый тип.

• Оператор UpperValue.MakeUpper; переводит все символы переменной UpperValue в верхний регистр.

• Оператор if(UpperValue=="PAINT"); проверяет, если введено ли слово PAINT, то выполняются следующие три оператора:

Первый system("pbrush.exe"); запускает графический редактор, так как не указан явный путь к файлу, то программа будет искать его в каталоге C: \WINDOWS.

Второй оператор m_TestEdit=""; присваивает переменной окна редактирования значение NULL, а следующий оператор UpadteData(FALSE) — обновляет экран. Вследствие этого, весь текст из окна редактирования удалится.

• Заметьте, что мы перевели символы переменной UpperValue в верхний регистр — это нужно потому, что в языке C++ символы нижнего и верхнего регистра имеют разные значения, поэтому при переводе на верхний регистр, мы 100 % будем уверены, что написанное нами слово Paint совпадет с PAINT.

• Следующая конструкция операторов полностью идентична предыдущей, только проверяется равно ли значение переменной m_TestEdit слову CALCULATOR, если да, то запускается калькулятор, и окно редактирования очищается.

Поделиться:
Популярные книги

Сердце дракона. Танец с врагом

Серганова Татьяна Юрьевна
2. Танец с врагом
Любовные романы:
любовно-фантастические романы
5.25
рейтинг книги
Сердце дракона. Танец с врагом

Леди Малиновой пустоши

Шах Ольга
Любовные романы:
любовно-фантастические романы
6.20
рейтинг книги
Леди Малиновой пустоши

Право на месть

Ледова Анна
3. Академия Ровельхейм
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Право на месть

Флеш Рояль

Тоцка Тала
Детективы:
триллеры
7.11
рейтинг книги
Флеш Рояль

Старшеклассник без клана. Апелляция кибер аутсайдера 2

Афанасьев Семен
2. Старшеклассник без клана. Апелляция аутсайдера
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Старшеклассник без клана. Апелляция кибер аутсайдера 2

Ваше Сиятельство 6

Моури Эрли
6. Ваше Сиятельство
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Ваше Сиятельство 6

Холодный ветер перемен

Иванов Дмитрий
7. Девяностые
Фантастика:
попаданцы
альтернативная история
6.80
рейтинг книги
Холодный ветер перемен

Отморозок 4

Поповский Андрей Владимирович
4. Отморозок
Фантастика:
попаданцы
фантастика: прочее
5.00
рейтинг книги
Отморозок 4

Барон Дубов 6

Карелин Сергей Витальевич
6. Его Дубейшество
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Барон Дубов 6

Точка Бифуркации

Смит Дейлор
1. ТБ
Фантастика:
боевая фантастика
7.33
рейтинг книги
Точка Бифуркации

Возвышение Меркурия. Книга 16

Кронос Александр
16. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 16

Секретарша генерального

Зайцева Мария
Любовные романы:
современные любовные романы
эро литература
короткие любовные романы
8.46
рейтинг книги
Секретарша генерального

Последняя Арена 11

Греков Сергей
11. Последняя Арена
Фантастика:
фэнтези
боевая фантастика
рпг
5.00
рейтинг книги
Последняя Арена 11

Начальник милиции. Книга 4

Дамиров Рафаэль
4. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 4