Интернет-журнал "Домашняя лаборатория", 2007 №1
Шрифт:
Панель Minimize и Maximaze отмечены для того, чтобы вы могли свертывать окно и наоборот рассматривать его во весь экран. Для их установки вам необходимо зайти в Dialog Box Propertions и на странице Styles отметить их.
• Edit Box — это окно редактирования, в нем вы можете вводить свой текст. Мы не задавали этому элементу никаких дополнительных параметров, нам необходимо только знать его идентификатор (IDС_ТЕSТ_ЕDIТ).
• В следующем пункте Group Box, который служит для выделения элементов управления в рамку. Этот элемент выглядит так:
Вы
• Static Text — это элемент текста, он вставляется как обычный элемент управления, но не выполняет ни каких функций, так как служит для показа текста, который вы зададите в Captions. В данном случае мы вставляем инструкцию по применению программы: INSTRUCTIONS: То execute…. Вы, наверное, заметили, что этот элемент имеет такой же идентификатор, как и у Group Box, так как мы не будем их использовать в программе и связывать с ними события(хотя это и невозможно).
• Следующие два элемента Check Box с Captions &Visible и &Enable, будут служить для скрытия окна редактирования и закрытия доступа к окну редактирования, и наоборот. Если они включены, то окно видимо и есть к нему доступ, и наоборот. При запуске программы они должны будут быть отмечены. Для этого в дальнейшем мы напишем специальный код.
• Затем идут три кнопки Test, Clear и Exit. При нажатии на кнопку Test в окне редактирования появляется текст: This is a Test, а при нажатии на кнопку Clear, окно редактирования очищается. Кнопка E&xit, служащая для завершения программы, имеет еще дополнительные параметры, которые можно включить на странице Extended Styles. Они служат для разнообразного обрамления, выделения.
Поздравляю, вы закончили визуальное проектирование диалоговой панели!
Связывание переменных с окном редактирования и флажками
• Сейчас нам необходимо связать окно редактирования и флажки с переменными, с помощью которых мы будем иметь к ним доступ. В частности для окна редактирования нам нужна переменная типа CString, используя эту переменную, мы сможем извлекать текст из окна редактирования, а также изменять его содержимое.
• Также нам необходимо связать переменные с флажками, чтобы управлять ими и получать текущие состояния: включено, выключено.
А теперь зайдите в View->ClassWizard и выберете в закладках Member Variables. В этом пункте вы можете связывать переменные с элементами управления.
Ваше окно сейчас должно быть выглядеть так:
Теперь рассмотрим эту закладку.
• Project — название вашего проекта.
• Class Name — название класса, элементы которого вы будете связывать с переменными. Убедитесь в том, чтобы был выбран класс CTestDIg, потому что именно он отвечает за диалоговую панель, которую вы только что проектировали.
• Control IDs — названия элементов управления, с которыми можно связать переменные.
• Туре — тип переменной, которую вы связываете с элементом диалога.
• Member — название переменной, которую вы связываете с элементом диалога.
Выберем в списке Control IDs идентификатор IDC_TEST_EDIT и щелкнем
на кнопку Add Varible, выведется такое диалоговое окно:Рассмотрим его:
• Member Varible Name — название переменной, с которой вы хотите связать элемент управления.
• Category — здесь вы можете выбрать категорию переменной. К примеру, Value — это категория переменной, предназначенная для передачи значения переменной Control — а это категория предназначена для управления элементами. К примеру, с помощью переменной такой категории можно менять названия кнопок, добавлять строки в ListBox и многое др.
• Varible Туре — это тип переменной.
В Member Varible Name зададим название — m_TestEdit и нажмем кнопку ОК.
Вы связали окно редактирования с переменной m_TestEdit, с помощью которой вы получите доступ к окну редактирования.
Теперь свяжем флажки с переменными, для этого выберем в Member Varible идентификатор IDC_ENABLE_CHECK и нажмем на кнопку Add Varible. Зададим название переменной — m_EnableCheck. Посмотрите, эта переменная имеет категорию Value и тип BOOL. Переменная типа BOOL может принимать два значения TRUE и FALSE. TRUE — правда, a FALSE — ложь. Если флажок отмечен, то переменная будет иметь значения TRUE, а если нет — FALSE.
Теперь выберете в закладке Member Varible идентификатор IDC_VISIBLE_CHECK и нажмем на кнопку Add Varible. Зададим название переменной — m_VisibleCheck.
Вы закончили связывание переменных с окном редактирования и флажками
Код, инициализирующий окно редактирования
• При запуске программы, основанную на диалоге, вам нужно установить определенные значения некоторых элементов управления. Вам необходимо, чтобы флажки Visible и Enable были отмечены, иначе окна редактирования не будет видно. Для этого выполните следующие действия:
• Зайдите в View->ClassWizard,откройте закладку Message Maps.
• В Message IDs выберете CTestDIg, в Messages появится список событий, с которыми может быть связано диалоговое окно. Выберете там событие WM_INITDIALOG. Оно происходит, когда запускается программа и инициализируется диалоговое окно.
• Щелкнете на кнопку Add Function, а затем нажмите на кнопку Edit Code, для редактирования исходного кода.
Функция OnlnitDialog уже содержит часть кода написанного VC++. Найдите в нем коментарий //TODO: Add extra initialization here, который сообщает нам, что после него мы можем добавить свой код.
Напишите следующий код в функции OnlnitDialog:
BOOL CTestDIg::OnInitDialog
{
CDialog::OnInitDialog;
// TODO: Add extra initialization here
//Добавьте свою инициализацию
////////Мой код начинается здесь///////////
//Установить переменную флажка VisibleCheck и EnabledCheck в состояние
//TRUE
m_VisibieCheck=TRUE;
m_EnabieCheck=TRUE;
//Обновить экран UpdateData(FALSE);
////////Мой код заканчивается здесь///////////
return TRUE; // Вернуть TRUE, если только вы не установили фокус на элемент управления
}