Опубликован: 17.08.2010 | Доступ: свободный | Студентов: 999 / 59 | Оценка: 4.11 / 3.89 | Длительность: 29:38:00
Самостоятельная работа 19:

Модальные окна страниц свойств MFC

Создание программной поддержки ресурсов

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

Программная поддержка ресурса Find
  • Вызовите на редактирование ресурс IDD_PROPPAGE_FIND
  • Щелкните в любом месте на форме ресурса правой кнопкой мыши и через контекстное меню выполните команду Add Class
  • Заполните мастер так, как показано на рисунке

  • После нажатия кнопки Finish мастер создаст код класса поддержки страницы свойств Find

Для создания ассоциированных переменных для элементов управления нужно щелкать правой кнопкой мыши на этих элементах, вызывать контекстное меню и выполнять команду Add Variable.

  • Создайте управляющую переменную для раскрывающегося списка, заполнив, мастер так

  • Создайте управляющую переменную для кнопки Find, заполнив мастер так

Программная поддержка ресурса Result
  • Вызовите на редактирование ресурс IDD_PROPPAGE_RESULT
  • Щелкните в любом месте на форме ресурса правой кнопкой мыши и через контекстное меню выполните команду Add Class
  • Заполните мастер так, как показано на рисунке

  • После нажатия кнопки Finish мастер создаст код класса поддержки страницы свойств Result

Для создания ассоциированных переменных для элементов управления диалогового окна Result нужно щелкать правой кнопкой мыши на этих элементах, вызывать контекстное меню и выполнять команду Add Variable.

  • Создайте управляющую переменную для списка, заполнив, мастер так

  • Создайте управляющую переменную для кнопки Go to, заполнив, мастер так

Создание строкового ресурса

Создадим строковый ресурс для конструктора класса-контейнера страниц свойств.

  • Откройте панель Resource View и вызовите на редактирование ресурс String Table
  • Создайте новую строку с настройками
    • ID=IDS_FIND
    • Value=129
    • Caption=Find Book

Редактирование ресурса меню
  • Вызовите на редактирование ресурс меню через панель Resource View

  • Удалите все пункты из категории File, кроме Exit

  • Добавьте между категорией Edit и View категорию меню Books и ее пункт Find Book

Добавление обработчика пункта меню Find Book

Добавьте в класс CModalDemoView обработчик события выбора пункта меню Find Book. Для этого:

  • В редакторе ресурса меню щелкните на пункте меню Find Book правой кнопкой мыши и через контекстное меню выберите команду Add Event Handler...

  • Настройте выделения мастера создания заготовки обработчика так

  • Нажмите кнопку Add and Edit (Добавить и редактировать)

    Мастер создаст в файле ModalDemoView.cpp заготовку функции-обработчика, которая должна выглядеть так

    Заготовка обработчика пункта меню Find Book
    void CModalDemoView::OnBooksFindbook()
    {
      // TODO: Add your command handler code here
    }
  • Добавьте в начало файла ModalDemoView.cpp последними после других директив #include операторы подключения заголовочных файлов, описывающих классы страниц
    Подключение заголовков к файлу ModalDemoView.cpp
    // ModalDemoView.cpp : implementation of the CModalDemoView class
    //
      
    #include "stdafx.h"
    #include "ModalDemo.h"
      
    #include "ModalDemoDoc.h"
    #include "ModalDemoView.h"
    #include ".\modaldemoview.h"
      
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #endif
      
    #include "FindPage.h"
    #include "ResultPage.h"
      
    // CModalDemoView
    ................................................
  • Отредактируйте обработчик пункта меню Find Book так

    Код обработчика OnBooksFindbook()
    void CModalDemoView::OnBooksFindbook()
    {
      CPropertySheet sheet(IDS_FIND);
      CFindPage pageFind;
      CResultPage pageResult;
      
      sheet.AddPage(&pageFind);
      sheet.AddPage(&pageResult);
      sheet.DoModal();
    }

    В коде обработчика вначале создается экземпляр класса CPropertySheet на стеке, в который конструктор передает заголовок окна свойств через строковый ресурс IDS_FIND, определенный нами ранее в String Table. Затем создаются экземпляры двух страниц свойств, которые добавляются к окну свойств. В завершение окно свойств выводится на экран в модальном режиме.

  • Постройте проект и убедитесь, что все работает в рамках выполненного

Александр Даниленко
Александр Даниленко
Стоит Windows 8 Pro, Visual Studio 2010 Express Edition .