Урок № 5 - Создание вкладок диалогового окна
Создайте диалоговое окно с именем SheetApp (как создавать было описано на первом уроке).
Удалите все элементы управления и кнопки , расположенные на заготовке диалогового окна.
Щелкните правой кнопкой мыши на заготовке диалогового окна и в проявившемся контекстном меню выберите Properties. Откроется диалоговое окно Dialog Properties.
Раскройте вкладку General (Общие свойства) и измените ID: (идентификатор ресурса) на IDD_PAGE1. В текстовое поле Caption введите текст "Вкладка 1". Откройте вкладку Styles (Стили). В раскрывающемся списке Style: (Стиль) выберите Child (Дочернее окно). Из раскрывающегося списка Border: (Рамка) выберите Thin (Тонкая). Снимите флажок System menu (Системное меню). Диалоговое окно Dialog Properties примет вид, изображенный на рис. 5.1.
Щелкните правой кнопкой мыши на идентификаторе ресурса IDD_PAGE1, расположенного в папке Dialog, во вкладке ResourceView окна Workspace. Выберите в раскрывающемся списке Language: (язык), диалогового окна Dialog Properties, язык Russian.
В панели инструментов Controls выберите элемент управления Static Text и поместите его на заготовку. Откройте диалоговое окно Static Text Properties и введите в текстовое поле ID: IDD_STATIC, в поле Caption: Статический элемент первой вкладки. Заготовка примет вид, изображенный на рис. 5.2.
Вызовите мастер ClassWizard нажав на клавиши Ctrl+W. Появится диалоговое окно Adding a Class (Добавление класса), изображенное на рис. 5.3.
В этом окне сообщается, что идентификатор ресурса IDD_PAGE1 соответствует новому ресурсу и спрашивается, создавать ли для него новый класс или использовать уже созданный.
Оставьте установку переключателя в положении Create a new class (Создать новый класс) и нажмите кнопку ОК. Появится диалоговое окно New Class (Новый класс), изображенное на рис. 5.4.
Введите в текстовое поле Name: идентификатор CPage1. В раскрывающемся списке Base class: (Базовый класс) выберите класс CPropertyPage. Диалоговое окно New Class (Новый класс) будет выглядеть, как показано на рис. 5.5.. Нажмите на кнопку ОК.
Во вкладке ResourceView окна Workspace щелкните правой кнопкой мыши на папке SheetApp Resources (Ресурсы приложения SheetApp) и в появившемся контекстном меню выберите команду Insert Dialog (Вставить диалоговое окно). Щелкните на этой заготовке и измените размер диалогового окна так, чтобы он соответствовал размеру диалогового окна первой панели. Размер и положение выделенного элемента управления или диалогового окна отображается в панели состояния.
Замените идентификатор ресурса новой заготовки на IDD_PAGE2, а его заголовок на "Вкладка 2". Повторите все операции произведенные над ресурсом IDD_PAGE1.
Создайте еще одну заготовку IDD_PAGE3 и назовите ее "Вкладка 3". Повторите все операции произведенные над ресурсами IDD_PAGE1 и IDD_PAGE2.
Итак, у Вас должны быть созданы три заготовки IDD_PAGE1, IDD_PAGE2, IDD_PAGE3. Должны быть созданы три класса CPage1, CPage2, CPage3. На каждой заготовке должен стоять статический элемент управления IDD_STATIC.
Вызовите ClassWizard. Нажмите на кнопку Add Class ... (Добавить класс). В появившемся контекстном меню выберите команду New... (Новый). На экране появится диалоговое окно New Class.
В текстовое поле Name: введите имя класса CSheet, в раскрывающемся списке Base class: выберите класс CPropertySheet.
Нажмите на кнопку ОК. Мастер ClassWizard создаст новый класс с именем CSheet. Закройте ClassWizard нажав на кнопку ОК.
Раскройте вкладку FileView (Просмотр файлов) окна Workspace. В ней раскройте папку SheetApp files (Файлы приложения SheetApp). Откройте папку Header files (Файлы заголовков) и дважды щелкните левой кнопкой мыши по имени файла Sheet.h Откроется окно редактирования файла Sheet.h
Перед объявлением класса CSheet вставьте операторы включения файлов заголовков классов вкладок диалогового окна:
#include "Page1.h"
#include "Page2.h"
#include "Page3.h"
В раздел // Attributes описания класса CSheet вставьте операторы объявления данных-членов класса, представляющих собой объекты классов вкладок:
CPage1 m_page1;
CPage2 m_page2;
CPage3 m_page3;
Во вкладке FileView окна Workspace откройте папку Source files (Файлы реализации) и дважды щелкните левой кнопкой мыши на файле Sheet.cpp
В тело функции обоих конструкторов класса CSheet, добавьте операторы включения вкладок в диалоговое окно:
CSheet::CSheet(UINT nIDCaption, CWnd* pParentWnd,
UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
AddPage(&m_page1);
AddPage(&m_page2);
AddPage(&m_page3);
}
CSheet::CSheet(LPCTSTR pszCaption, CWnd* pParentWnd,
UINT iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
AddPage(&m_page1);
AddPage(&m_page2);
AddPage(&m_page3);
}
Во вкладке FileView окна Workspace щелкните левой кнопкой мыши на файле SheetApp.cpp.
В теле функции InitInstance замените оператор CSheetAppDlg dlg; на оператор:
CSheet dlg("Урок № 5 - Создание вкладок диалогового окна ");
Не забудь в начале файла SheetApp.cpp вставить оператор включения файла заголовка класса CSheet:
#include "Sheet.h"
Сохраните Вашу работу и откомпилируйте ее.
Смотрите также: