Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КЛ_ТехнолПрогр2010_090103.doc
Скачиваний:
22
Добавлен:
27.04.2019
Размер:
1.35 Mб
Скачать

8.2. Система диалоговых окон и элементов управления

Цель работы - создание ресурса диалогового окна; создание класса диалогового окна; связывание элементов управления диалогового окна с функциями-обработчиками сообщений; связывание переменных класса с элементами управления окна; отображение диалогового окна в приложении (лаб. работа lab3_2 – [7, c.32]).

В окне редактора диалоговых окон имеется палитра с инструментами (стандартными элементами управления).

Алгоритм работы приложения состоит в следующем:

- Щелкнуть на включенной заранее в меню File новой команде Dialog. Появляется диалоговое окно со стандартными кнопками OK и Cancel, с добавленной кнопкой с именем Output и добавленным пустым текстовым полем.

- Щелкнуть на кнопке Output. В текстовом поле появляется строка “Диалоговое окно”.

- Щелкнуть на кнопке OK. Диалоговое окно исчезает, появляется главное окно приложения, в котором выводится содержимое текстового поля “Диалоговое окно”.

Для создания приложения lab3_2 выполнить следующие этапы.

- создание проекта lab3_2 (SDI-приложение),

- включение новой команды Dialog в меню File,

- создание ресурса диалогового окна,

- создание класса диалогового окна,

- связывание элементов управления диалогового окна с

функциями-обработчиками сообщений,

- связывание переменных класса с элементами окна,

- переопределение функции для кнопки ОК,

- отображение диалогового окна,

Скомпилировать, запустить и протестировать приложение.

Контрольные вопросы

  1. Как создать меню?

  2. Что такое клавиши ускоренного вызова, акселераторы?

  3. Зачем нужны новые кнопки на панели инструментов?

  4. Как создать диалоговое окно в программе?

  5. Каким образом добавляются элементы управления в диалоговое окно?

  6. Чем отличаются переключатели и флажки?

  7. Объясните сущность линейного регулятора.

  8. Чем отличаются списки и комбинированные поля?

Тема 9. Программирование файловой обработки

9.1. Файловая обработка объектов класса mfc

Сериализация – это процесс сохранения и загрузки данных с диска. В VC++ имеются встроенные средства управления файлами, обеспечивающие автоматизацию сериализации собственных типов данных. Созданное с помощью AppWizard приложения имеют встроенное меню File с командами New, Open, Save as.

Функции-обработчики команд меню File сначала открывают файл, а затем вызывают элемент-функцию Serialize() класса документа приложения. Эта функция и выполняет чтение и запись данных. Пример:

void Clab4_1Doc::Serialize (CArchive& ar)

{

if (ar.IsStoring()) // cохранение (запись на диск)

{// добавить код сохранения

ar<< DataObject;

}

else

{// добавить код загрузки

ar>> DataObject;

}

}

Функция принимает ссылку на объект класса CArchive. Класс CArchive осуществляет передачу документов в архив и обратно.

Функции базового ввода-вывода класса CArchive:

- UINT Read(void* lpBuf, UINT nMax); //чтение с диска

- void Write(const void* lpBuf, UINT nMax); //запись на диск

- операторы <<,>>. //операторы записи и чтения;

- Bool ReadString(CString& pString); //чтение строки

- Bool WriteString(CString& pString); //запись строки

- GetFile(); //статус

- IsLoading(); //проверка загрузки: не 0 - хорошо; 0 - плохо

- IsStoring(); //проверка сохранения: не 0 - хорошо; 0 - плохо

Элемент-функция IsStoring () класса CArchive возвращает true, если файл открыт на запись, и false, если файл открыт на чтение.

Функция Serialize () может записывать и читать с помощью операций вставки << и извлечения >> данные, имеющие базовые типы данных: int, float, double, BYTE, WORD, LONG, DWORD.

Итак, для сериализации объектов классов MFC необходимо выполнить следующие операции:

- Создание элементов-данных класса документа.

- Инициализация этих элементов-данных в функциях класса документа OnNewDocument () и в конструкторе.

- Организация отображения документа в функции OnDraw.

- Включение элементов-функций класса представления, обеспечивающих редактирование документа.

- Добавление кода функции Serialize ().

Цель работы - чтение и запись с диска стандартных объектов MFC; работа команд меню File (лаб. работа lab4_1 – [7, c.41]).

Для создания приложения необходимо выполнить следующие операции:

- добавление элементов-данных класса документа, которые будут записываться и читаться с диска;

- инициализация этих элементов-данных в функции OnNewDocument() класса документа и в конструкторе документа;

- ввод данных с клавиатуры, если это необходимо, например, в функции OnChar() для ввода символов строки;

- организация вывода документа (функция OnDraw());

- включение в класс вида функций редактирования;

- модернизация функции Serialize() т.е. включение операторов, обеспечивающих сохранение (Save) и загрузку (Open) данных, которые представляют собой содержание документа.

Для создания приложения lab4_1 выполнить этапы:

- создание проекта lab4_1 (SDI-приложение),

- добавление элемента - данного класса документа,

- инициализация элемента-данного в конструкторе

класса и в OnNewDocument(),

- ввод данных с клавиатуры,

- вывод текущего состояния документа,

- сообщение приложению об изменении данных,

- модификация функции Serialize().

Скомпилировать, запустить и протестировать приложение.