Шаг 52.
Среда программирования Visual C++.
Редактирование данных приложения средствами диалогового окна
На этом шаге мы рассмотрим реализацию редактирования данных приложения, используя диалоговое окно.
Сейчас добавим некоторые переменные-члены в класс документа приложения МуАрр. В MFC-приложении
класс документа является наиболее подходящим контейнером данных приложения. Вы создадите диалоговое окно,
в котором можно редактировать значения переменных, соответствующих данным приложения. Эту работу следует
проделать, прежде чем двигаться дальше, так как ее результатами мы будем пользоваться в дальнейшем.
- Добавление элементов данных приложения.
- Откройте проект МуАрр. В ClassView правой кнопкой мыши
щелкните класс CMyAppDoc и выберите команду Add Member Variable. Добавьте открытую
переменную m_nLines типа int.
- Двойным щелчком конструктора CMyAppDoc откройте редактор кода.
- В теле конструктора переменной m_nLines присвойте начальное значение 20, а переменной m_string -
строку длиной 60 символов:
CMyAppDoc::CMyAppDoc()
{
m_nLines = 20;
m_string =
"This is a very long string designed to take up lots of space";
}
Рис.1. Текст конструктора
- С помощью редактора меню добавьте новый пункт в верхнюю строку меню Data. Введите для команды
заголовок &Edit и текст приглашения Edit document data. Подтвердите идентификатор ID_DATAEDIT, созданный по умолчанию.
Рис.2. Создание пункта Edit
- В редакторе диалогов сформируйте новый шаблон диалога с идентификатором ресурса IDD_EDITDATA. Диалоговое
окно озаглавьте Edit Document Data и включите в него две надписи Line text: и Number of lines:, соответствующие полям ввода
IDC_EDIT_LINЕТЕХТ и IDC_EDIT_NUMLINES. Эти элементы управления разместите так, как показано на
рисунке 3. Для элемента управления IDC_EDIT_ NUMLINES установите флажок Number на вкладке
Styles окна свойств.
Рис.3. Диалоговое окно Edit Document Data
- В ClassWizard создайте для диалога IDD_EDITDATA класс CEditDataDialog, производный от
CDialog. Добавьте в него две переменные, соответствующие полям ввода - m_strLineText типа
CString и m_nLines типа UINT.
Рис.4. Созданные переменные
- Добавьте в начало файла MyAppDoc.cpp рядом с остальными операторами #include следующую строку:
#include "EditDataDialog.h"
- С помощью ClassWizard добавьте в класс CMyAppDoc функцию-обработчик OnDataEdit()
для объекта ID_DATA EDIT, которая будет обрабатывать сообщение COMMAND.
Рис.5. Добавление функции OnDataEdit()
- Добавьте в тело функции OnDataEdit() следующий код:
CEditDataDialog aDlg;
aDlg.m_nLines = m_nLines;
aDlg.m_strLineText = m_string;
if(aDlg.DoModal())
{
m_nLines = aDlg.m_nLines;
m_string = aDlg.m_strLineText;
UpdateAllViews(NULL);
}
Рис.6. Функция OnDataEdit()
- Соберите и запустите приложение МуАрр. Выберите в меню Data команду Edit и проверьте,
как отображается диалоговое окно Edit Document Data.
Текст измененного приложения можно взять здесь (56,1 Кб).
На следующем шаге мы рассмотрим реализацию окон свойств.
Предыдущий шаг
Содержание
Следующий шаг