Редактирование данных приложения средствами диалогового окна

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

   
Сейчас добавим некоторые переменные-члены в класс документа приложения МуАрр. В 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 Кб).

   
На следующем шаге мы рассмотрим реализацию окон свойств.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий