
- •1.Стандартный внешний вид окна приложения Windows.
- •1. Рамка
- •3. Интерфейс Visual Studio. Ресурсы приложения.
- •4. Интерфейс Visual Studio. Окно вывода Output.
- •Окно редактирования текстов программ
- •5. Система меню. Меню File, Edit, View.
- •Advanced… вывод на экран еще одного меню.
- •6. Система меню. Меню Insert, Project.
- •7. Система меню. Меню Build, Tools. Меню Build
- •8. Мастер создания приложения. Шаг 1,2.
- •9. Мастер создания приложения. Шаг 3,4.
- •10. Мастер создания приложения. Шаг 5,6,7.
- •11. Диалоговые окна и элементы управления
- •12. Формирование нового ресурса диалогового окна.
- •13. Задание идентификаторов диалогового окна.
- •14. Организация вывода диалогового окна на экран.
- •15.Использование элемента управления типа список
- •Некоторые методы класса cListBox
- •16. Комбинированные списки (класс cCombobox).
- •17. Использование элементов типа переключатель Статические поля (класс static). Окна редактирования Edit Box. Методы класса cEdit.
- •19. Обработка сообщений. Карты сообщений.
- •Некоторые макросы карты сообщений
- •20.Реал-ция обр-ки сообщ-й с пом.ClassWizard. Виды сообщ-й.
- •Вкладки диалогового окна ClassWizard.
- •Какой класс должен перехватывать сообщение
- •Список сообщений
- •21. Команды. Реал-ция обр-ки команд с помощью ClassWizard
- •Обновление команд.
- •22. Архитектура «Документ/представление».
- •23. Вывод на экран. Контекст устройства. Классы контекстов устройства в mfc.
- •24.Классы изобразительных средств. Примеры рисования простейших фигур.
- •Рисование простейших фигур (пример)
- •Изменение размеров и положения окна
- •25. Использование перьев. Работа с кистью.
- •Работа с кистью
- •26. Концепция сохран.-восстановл. Объектов. Необходимые действия по сохр.-востан. Объектов класса cDocument. Разбор примера с сериализацией в классе документа.
- •Создание класса, обеспечивающего сериализацию данных
- •27. Создание класса, обеспечивающего сохран.-восстан. Объектов. Разбор примера с сериализацией cMessage. Создание класса, обеспечивающего сериализацию данных
- •28. Непосредственное чтение и запись файлов. Класс сFile. Методы сFile. Режимы доступа к файлу.
- •29. Использование на примере основных методов класса cFile (открыть, записать, считать из файла). Использование стандартн. Диалог. Панелей для открытия и записи в файл.
- •30.Панель инструментов и строка состояния. Создание панели инструментов. Добавление и удаление пиктограмм.
- •31.Разработка ф-ций обработки сообщений, связ-х с пиктограммой на панели инструм-в. Класс панели инстр-в.
- •32. Доступ к базам данных в vs. Классы odbc.
- •34. Регистрация бд. Создание заготовки приложения.
- •35.Создание экранной формы для отображ-я содерж-го бд.
- •36.Добавление и удаление записей.
- •37. Сортировка и фильтрация записей.
- •3)Атрибуты данных
- •4) Операции
- •43.Класс cRecordset. Компоненты данных и осн.Методы (открытие набора, получ-е атрибутов результ. Набора IsOpen, IsBof, IsEof, IsDeleted, обновл-е результ. Набора)
- •1)Компоненты данных
- •2)Конструирование
- •44.Класс cRecordset. Компоненты данных и осн.Методы (операции перемещения пo результир-му набору, операции IsFieldDirty, IsFieldNull, Requary, SetFieldDirty, SetFieldNull).
- •1)Компоненты данных
- •45. Класс cRecordset. Переопределяемые методы (DoFieldExchange, GetDefoltSql, GetDefoltConnect).
- •46.Класс cRecordView.
- •1)Создание объекта
- •2)Атрибуты данных
- •47. Основные технологии com. Автоматизация. Перманентность. Моникеры.
- •48. Единообразная передача данных и объекты с подключением.
- •49. Технология ado. Объектная модель, наборы ado.
- •50. Применение ado Data Control и DataGrid Control.
- •2.2. Методические указания
- •51. Удаление, добавление и редактирование записей в технологии ado
- •52.Настройка Эл-тов упр-ния ado Data Control и DataGrid Control из кода приложения
- •53. Возможности AppWizard по созданию приложений, поддерживающих технологию ActiveX.
- •54.Библиотеки динамической компоновки dll
- •55.Создание и использование 32-битовых динамически связываемых библиотек
- •56. Создание рабочего потока. Управление приоритетами потоков
- •57. Синхронизация потоков. Объекты синхронизации и классы mfc.
- •Объекты синхронизации и классы mfc.
- •58.Отладка программ в vs. Точка останова. Установка точек останова. Команды и окна отладки.
- •Терминология отладки
- •Команды и окна отладки
- •Команды меню
- •Установка точек останова
- •Другие окна для отладки
- •Окно Memory
- •Применение утилиты mfc Tracer
- •59. Отладка программ в vs. Анализ значений переменных. Окно CallStact.
26. Концепция сохран.-восстановл. Объектов. Необходимые действия по сохр.-востан. Объектов класса cDocument. Разбор примера с сериализацией в классе документа.
Одна из основных задач программы — сохранять данные пользователя после их изменения. В большинстве случаев, когда приложение создается с использованием AppWizard, Visual C++ без Вашего участия включает в него программы, которые необходимы для сохранения и восстановления данных.
Одна из задач, решаемых программистом при разработке приложений, которые могут создавать и редактировать документы различных типов (например, различные редакторы), заключается в том, чтобы предоставить пользователю возможность записать внутреннее представление документа в файл и восстановить его.
Процесс сохранения и восстановления внутреннего представления объекта называется сериализацией данных. При создании приложения вам приходится иметь дело с достаточно большим разнообразием типов объектов. Одни типы объектов, хранящих данные, довольно просты, например тип int или char. Другие являются экземплярами классов — строками (экземплярами класса CString) или даже объектами классов, созданными специально для данного приложения. При использовании таких, объектов в приложении, которое должно формировать, сохранять и восстанавливать документы, разработчику необходимо изобретать средства сохранения и восстановления этих объектов с тем, чтобы можно было их восстановить. Свойство объекта сохраняться и восстанавливаться называется живучестью (persistence). Практически все классы MFC наделены этим свойством, поскольку они прямо или косвенно происходят от базового класса CObject. Последний уже обладает базовыми ф-ми сохранения-восстановления объекта.
Приложения, подготовленные при помощи средства AppWizard, используют этот механизм с помощью методов класса CDocument. Программисту предлагается только переопределить метод Serialize этого класса для работы с конкретными данными приложения. Программист может определить свой класс (на основе базового класса CObject) для работы с данными и определить в нем механизм записи и восстановления объектов.
Создание класса, обеспечивающего сериализацию данных
Библиотека классов MFC определяет механизм записи и восстановления объектов (serialization), причем поддержка этого механизма осуществляется средствами класса CObject.
Классы, наследованные от CObject, также могут обеспечивать работу механизма записи и восстан-я объектов. Для этого при объявл-и класса надо указать макрокоманду DECLARE_SERIAL, а при определении - макрокоманду IMPLEMENT_SERIAL.
Макрокоманду DECLARE_SERIAL необходимо поместить в описании класса в заголовочном файле. В качестве параметра макрокоманды надо указать имя класса
DECLARE_SERIAL (имя_класса)
Макрокоманду IMPLEMENT_SERIAL следует указать перед упоминанием класса в файле исходного текста приложения. Прототип макрокоманды IMPLEMENT_SERIAL представлен ниже:
IMPLEMENT_SERIAL(имя_класса,имя_баз_класса,номер_версии)
имя_класса определяет имя класса, имя_базового_класса - имя базового класса, из кот-го непосредственно наследуется класс. Последний параметр номер_версии - это число типа UINT, определяющее версию программы.
В классе должны быть определены специальные методы для записи и восстановления состояния объектов этого класса..
Методы, сохраняющие и восстанавл-е объекты, взаимод-т с объектом класса CArchive, кот-й осуществляет непосредственную запись и чтение информации из файла на диске.
Класс CObject содержит виртуальный метод Serialize, отвечающий за запись и чтение объектов классов, наследованных от класса CObject: virtual void Serialize(CArchive& ar);
В качестве параметра ar методу передается указатель на объект класса CArchive, использ-й для записи и восстан-я состояния объекта класса CObject (или наследуемого от него класса). Чтобы узнать, какую операцию д.выполнить метод Serialize, необходимо воспольз-ся методами IsLoading или IsStoring класса CArchive.
Итак, при создании нового класса, в котором метод Serialize применяется для сериализации данных, необходимо:
1) Чтобы класс был произв-м от класса CObject или его потомков.
2) При объявлении класса необходимо вставить макрокоманду DECLARE_SERIAL.
3)Определить в классе функцию Serialize, отвечающую за хранение переменных класса.
4) Определить в классе конструктор без параметров.
5) Объявить в классе деструктор.
6) При реализации класса в начало файла реализации вставить макрос IMPLEMENT_SERIAL. У этой макрокоманды три парам-ра: имя класса, имя базового класса и номер версии формата файла, хранящего документ. Можно иметь несколько модификаций документа и с каждой из них связать свою версию.
Шаблон (заготовка) файлов определения и реализации класса, который обеспечивает процесс сериализации данных
// фрагмент файла определения класса
class CMyDoc:public CObject
{ DECLARE_SERIAL(CMyDoc)
protected: virtual void Serialize(CArchive& ar);
protected: CMyDoc();
protected: ~CMyDoc();
// другие описания класса . . . };