Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
193-224.doc
Скачиваний:
1
Добавлен:
11.11.2019
Размер:
378.88 Кб
Скачать

Подведение итогов

  • Модальное диалоговое окно — это временное окно, открывающееся поверх главного для отображения информации и получения данных. Для продолжения работы в главном окне модальное необходимо закрыть.

  • После создания программы с помощью мастера MFC Application Wizard можно сконструировать диалоговое окно, создав ресурс шаблона диалогового окна с помощью панелей инструментов Dialog Editor и Toolbox.

  • Для создания класса управления диалоговым окном, порождаемым от класса CDialog, можно использовать мастер MFC Class Wizard.

  • Чтобы определить переменные класса диалогового окна, используйте мастер Add Member Variable Wizard. Каждая переменная связана с определенным элементом управления, и MFC автоматически передает данные между ними при отображении или закрытии диалогового окна.

  • Для определения обработчиков сообщений, посылаемых элементами управления их окну-владельцу, используется команда Events окна свойств. По идентификатору элемента управления определяется посылаемое им сообщение, и генерируется шаблон его обработчика.

  • Для определения обработчиков сообщений Windows используется команда Messages окна свойств, в котором выбирается требуемое сообщение и генерируется его обработчик.

  • Для отображения модального диалогового окна следует создать объект класса диалогового окна и вызвать функцию CDialog::DoModal() для этого объекта. Эта функция не завершается до тех пор, пока пользователь не закроет диалоговое окно.

  • Для передачи информации из диалогового окна в память и обратно используется механизм DDX/DDV, в соответствии с которым генерируются методы CWnd::DoDataExchange() и глобальные функции с префиксами DDX и DDV.

  • Перед отображением диалог можно инициализировать с помощью метода CDialog::OnInitDialog( ).

  • Для отображения модального диалога необходимо предусмотреть соответствующую команду меню. Для этого с помощью редактора ресурса меню необходимо добавить команду и написать для нее обработчик командного сообщения.

  • Для использования данных объекта документа при выводе текста в окне представления программы необходимо внести изменения в код классов документа и представления.

Глава 7. Диалоговые окна с вкладками и стандартные диалоги

В этой главе рассматриваются вопросы:

  • создания немодальных диалоговых окон;

  • создание диалоговых окон с вкладками;

  • диалоговые окна общего назначения.

Классы диалоговых окон с вкладками (окон свойств)

Библиотека MFC поддерживает диалоговые окна с вкладками (окна свойств). В таком окне отображается несколько страниц взаимосвязанных элементов управления. Пример диалогового окна с вкладками показан на рис. 7.1. Способ обращения к каждой странице подобен выбору закладки в книге — необходимо щелкнуть на ярлычке в строке вкладок, отображаемой в верхней части окна. Диалоговое окно с вкладками поддерживается объектом класса CPropertySheet, а каждая страница — объектом класса CPropertyPage.

Рис. 7.1. Страница Style диалогового окна Format

Класс CPropertySheet не порождается классом CDialog. Однако, управление окном свойств подобно управлению диалоговыми окнами типа CDialog. Для создания окна свойств необходимо использовать конструктор. Прототипы конструкторов приведены ниже

CPropertySheet::CPropertySheet();

CPropertySheet::CPropertySheet( UINT nIDCaption, CWnd *pParentWnd = NULL, UINT iSelectPage = 0 );

CPropertySheet::CPropertySheet( LPCTSTR pszCaption, CWnd *pParentWnd = NULL, UINT iSelectPage = 0 );

Используются следующие параметры: nIDCaption — идентификатор заголовка окна свойств, pParentWnd — указатель на родительское окно, iSelectPage — индекс страницы, которая будет активной при открытии окна свойств, pszCaption — указатель на строку, содержащую заголовок окна свойств.

Функция CPropertySheet::DoModal() используется для отображения окна свойств.

Для разработки страницы используется редактор шаблонов диалоговых окон. Отдельная страница создается как отдельное диалоговое окно, однако при этом выбирается определенный набор стилей диалогового окна. Для включения в окно свойств отдельных вкладок (страниц) используется функция CPropertySheet::AddPage(). С ее помощью объекты класса CPropertyPage добавляются в список страниц объекта класса CPropertySheet. Само окно для вкладки создается только тогда, когда пользователь выберет эту вкладку. Прототип функции добавления страниц к окну свойств такой.

void CPropertySheet::AddPage( CPropertyPage *pPage );

Здесь параметр pPage — указатель на объект CPropertyPage.

По отношению к объектам класса CPropertyPage объект класса CPropertySheet является родительским. Доступ к окну свойств из объектов вкладок осуществляется методом CWnd::GetParent().

CWnd* CWnd::GetParent()

Создание объектов вкладок выполняется конструкторами, прототипы которых приведены ниже.

CPropertyPage(); CPropertyPage( UINT nIDTemplate, UINT nIDCaption = 0 ); CPropertyPage( LPCTSTR lpszTemplateName, UINT nIDCaption = 0 );

Рис. 7.2. Страница Justify диалогового окна Format

Конструкторам необходимо передать такие параметры: nIDTemplate — идентификатор шаблона страницы, nIDCaption — идентификатор имени вкладки (если указан 0, то имя выбирается из ресурса шаблона диалога для данной страницы), lpszTemplateName — указатель на строку, содержащую имя страницы

В этой главе рассматривается программа TabDemo. Диалоговое окно Format программы — это окно с вкладками. Первая страница диалогового окна Format — страница Style (рис. 7.1) — содержит флажки для выбора начертания шрифта.

Вторая страница — Justify (рис. 7.2) содержит переключатели для задания параметров выравнивания текста.

Третья страница —Pitch and Spacing (рис. 7.3) содержит переключатели для выбора ширины символов и поле для установки интервала между строками.

Рис. 7.3. Страница Pitch and Spacing диалогового окна Format

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]