`
Читать книги » Книги » Разная литература » Газеты и журналы » Интернет-журнал "Домашняя лаборатория", 2007 №1 - Цыбанова

Интернет-журнал "Домашняя лаборатория", 2007 №1 - Цыбанова

Перейти на страницу:
отметка флажка 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);

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

}

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

• 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, если да, то запускается калькулятор, и окно редактирования очищается.

Вы закончили связывание событий с элементами управления

Резюме и Упражнение

Упражнение

Сейчас вы выполните упражнение. Вам необходимо включить в свою программу еще код, чтобы при вводе слова Веер в окне редактирования, компьютер подавал звуковой сигнал. Подсказка: Код для генерации сигнала MessageBeep((WORD)-2);

Ответ к упражнению

Для того, чтобы выполнить упражнение вам необходимо включить в конец функции OnChangeTestEdit следующий код:

if(UpperVatoe== "ВЕЕР")

{

MessageBeep((WORD)-2);

m_ TestEdit=

UpdateData(FALSE);

}

Резюме

В этой главе вы получили некоторой опыт использования элементов управления и написали программу, которая имеет такие элементы управления, как окно редактирования, флажок и кнопка.

Вы также увидели процесс написания программы, использующей различные средства управления, который состоит в размещении элемента управления в диалоговой панели, настройки его свойств и связывания кода с событием данного элемента.

Теперь выполняем программу, для этого заходим в меню Build->Build Test.exe, а потом в меню Build выбираем Execute Test.exe

Вы закончили второй урок!

LESSON 3

Сейчас мы создадим программу DRAW.EXE Посмотрим на ее спецификацию и что она должна делать.

• Программа DRAW предназначена для рисования с помощью мыши линий установленного цвета и размера, программа будет рисовать линию в соответствии с движениями мыши.

• При нажатии на кнопку Exit программа завершается.

При запуске вашей программы, главное окно должно будет выглядеть так:

Перейти на страницу:

Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Интернет-журнал "Домашняя лаборатория", 2007 №1 - Цыбанова, относящееся к жанру Газеты и журналы / Сделай сам / Хобби и ремесла. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.

Комментарии (0)