Шаг 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 Кб).
   
На следующем шаге мы рассмотрим реализацию окон свойств.
Предыдущий шаг 
Содержание 
Следующий шаг