- •Создание немодальных диалоговые окон
- •Подведение итогов
- •Глава 7. Диалоговые окна с вкладками и стандартные диалоги
- •Классы диалоговых окон с вкладками (окон свойств)
- •Задание 1. Создание проекта и ресурсов шаблонов диалоговых окон
- •Задание 2. Создание классов диалоговых окон и добавление переменных-членов
- •Задание 3. Изменение ресурса меню, создание обработчиков сообщений
- •Задание 4. Инициализация переменных, связанных с элементами управления
- •Стандартные диалоговые окна
- •Список классов стандартных диалоговых окон
- •Диалоговые окна File Open и Save File As
- •Диалоговые окна Find и Replace
- •Диалоговое окно Page Setup
- •Диалоговые окна Print и Print Setup
- •Информационные диалоговые окна
- •Задание 5. Отображение стандартных диалоговых окон
Задание 2. Создание классов диалоговых окон и добавление переменных-членов
Для отображения диалогового окна необходимо создать класс диалогового окна, включить в меню программы команду его вызова. Созданные ресурсы диалоговых окон-вкладок также необходимо связать с классами.
Откройте окно редактора ресурса шаблона диалогового окна Style. Для этого откройте окно Resource View, разверните список категорий ресурсов, затем список ресурсов шаблонов диалоговых окон Dialog, и, наконец, дважды щелкните на идентификаторе ресурса диалога IDD_DIALOG1.
Откройте окно MFC Class Wizard (Мастер создания классов), выполнив команду ProjectAdd Class, или щелкнув дважды на поле диалогового окна Style
Введите следующие значения в поля окна MFC Class Wizard: в поле Class name (Имя класса) введите имя CStyle, в поле Base class (Базовый класс) выберите CPropertyPage. Остальные поля оставьте без изменения (рис. 7.7). Результатом работы мастера являются файлы интерфейса класса диалогового окна Style.h и реализации класса Style.cpp.
Рис. 7.7. Диалоговое окно MFC Class Wizard в процессе создания класса диалогового окна Style
Теперь необходимо связать вкладку диалогового окна Style с объектом класса CPropertyPage, что обеспечит возможность манипулировать вкладкой и элементами управления, расположенными на ней. Для этого нужно добавить переменные-члены класса CStyle. Откройте окно Class View. Разверните дерево классов. Вызовите контекстное меню для класса CStyle, щелкнув правой кнопкой на имени класса и выполните команду Add Add Variable…. Или выполните команду ProjectAdd Variable….
В окне Add Member Variable Wizard определите такие значения полей. Установите флажок Control variable (Переменная элемента управления). Тем самым указывается, что атрибут будет связан с элементом управления. Выберите из списка Control ID (Идентификатор элемента управления) значение IDC_BOLD. В поле Control type уже установлено значение CHECK. В поле Category (Категория) выберите значение Value, при этом значение в поле Variable type (Тип переменной) изменится на BOOL (рис. 7.8). В поле Variable name (Имя переменной) введите имя переменной m_Bold и выберите значение public из списка Access (Доступ). Для завершения процесса добавления переменной нажмите кнопку Finish.
Рис. 7.8. Окно Add Member Variable Wizard при определении переменных-членов класса CStyle
Повторите действия, описанные в пункте 5 для определения переменных m_Italic и m_Underline для флажков с идентификаторами IDC_ITALIC и IDC_UNDERLINE соответственно. При добавлении переменных необходимо установить флажок Control variable, выбрать категорию Value, задать тип BOOL, доступ public.
Повторите действия, описанные в пунктах 2 и 3, для создания классов CJustify и CPitch для диалоговых окон Justify и Pitch and Spacing соответственно.
Добавьте в класс CJustify переменную-член m_Justify для группы переключателей, указав в окне мастера Add Member Variable Wizard такие значения: флажок Control variable, категорию Value, тип переменной int, имя переменной m_Justify для идентификатора переключателя IDC_LEFT, доступ public.
Добавьте в класс CPitch переменные-члены m_Pitch для идентификатора переключателя IDC_VARIABLE, указав тип int, флажок Control variable и категорию Value. С помощью добавленной переменной m_Spacing свяжите переключатель IDC_SPACING, установив флажок Control variable, указав тип переменной int, категорию Value, минимальное значение 1, максимальное значение 3. Для переключателя с идентификатором IDC_SPACING задайте переменную-объект класса CEdit, указав ее имя m_SpacingEdit, категорию Control.
Сохраните изменения, постройте программу и протестируйте ее.
Вы увидите главное окно программы TabDemo, однако не сможете открыть диалоговое окно и убедиться в том, что оно имеет вкладки.