
- •Понятие визуального программирования.
- •Типы приложений (оконное приложение, консольное, сервис, драйвер).
- •Программирование, основанное на ресурсах. Редакторы ресурсов. Компилятор ресурсов. Функции для работы с ресурсами.
- •Работа с документами и окнами просмотра документов.
- •Структура оконного приложения.
- •Разработка однодокументных приложений. Использование AppWizard.
- •Назначение и методы классов приложения, главного окна, документа и вида.
- •Обработка сообщений. Работа с clAssWizard.
- •Обработка сообщений. Сообщение Windows. Обработка сообщений мыши и клавиатуры.
- •Панели элементов управления и каркас приложения. Панель инструментов. Строка состояния.
- •Модальные и немодальные диалоговые окна. Работа с модальным диалоговым окном.
- •Модальные и немодальные диалоговые окна. Работа с немодальными диалоговыми окнами.
- •Архитектура Document-View.
- •Управление gdi объектами. .Стандартные gdi-объекты .
- •Создание и уничтожение gdi-объектов.
- •Распределенные приложения. Технология dcom.
- •Многодокументный интерфейс mdi.
- •Рисование с помощью cdc.
- •Обзор основных классов mfc.
- •Классы для программирования графического интерфейса Windows.
- •Классы для обработки списков, массивов, коллекций.
- •Выполнение стандартных файловых операций с помощью класса cFile.
- •Сериализация данных приложения.
- •Многодокументный интерфейс mdi.
- •Понятие процесса и потока. Программирование многопоточных приложений.
- •Управление памятью в mfc.
- •Технологии связывание и внедрения объектов ActiveX.
- •Назначение и преимущества использования технологии ActiveX.
- •Установка элементов управления ActiveX.
- •Использование управляющих элементов ActiveX.
- •Понятие технологии com.
- •Создание объектов сом
- •Повторное применение объектов сом
- •Поддержка баз данных в mfc.
- •Технология ado
- •Обзор технологий odbc, dao, rdo, ole db. Интерфейсы доступа к данным.
- •Создание экранной формы для отображения содержимого бд.
- •Классы mfc для работы с сетью.
- •Программирование приложений для Интернета.
- •Динамически подключаемые библиотеки на mfc.
Выполнение стандартных файловых операций с помощью класса cFile.
Когда в программе отсутствует обьект типа документ, на который можно возложить файловые
операции, как например, в программе на базе диалоговых окон, приходится работать с классом MFC
CFile.Он обладает возможностями, необходимыми при работе с файлами как для записи данных на диск,
так и для их последующего учения.Эти возможности реализуются следующими методами:
Abort-закрывает файл, игнорируя любые предупреждения и ошибки;
CFile –конструирует обьект класса CFile по заданному пути или файловому логическому номеру;
Close-закрывает файл и удаляет обьект;
Flush-выполняет отложенную запись всех данных;
Get File Name-возвращает имя заданного файла;
Get File Path-возвращает полный файловый путь заданного файла;
Get File Title-возвращает короткое имя заданного файла;
Get Length-возвращает длину файла;
Get Position-возвращает текущую позицию файлового указателя;
Get Status-возвращает сведения о статусе заданного файла;
Get Status-возвращает сведения о статусе открытого файла;
Lock Range-блокирует диапазон байтов в файле;
Open-производит безопасное открытие файла с возможностью проверки ошибок;
Read-читает данные из файла,начиная с текущей позиции;
Read Huge-читает данные из файла длной более 64К;
Remove-удаляет заданный файл;
Rename-переименовывает заданный файл;
Сериализация данных приложения.
Необходимость в хранилище постоянных данных создает дополнительные трудности при разработке объектно-ориентированных приложений. Команде разработчиков приходится решать, как сохранять структуру и взаимосвязи объектов приложения при записи и восстановлении постоянных данных. Решение этой проблемы - нетривиальное занятие, ведь обычно данные файла записываются в виде неструктурированного двоичного потока. Каркас MFC-приложения помогает разрешить эту непростую ситуацию, предлагая сериализацию (serialization) - метод сохранения структуры данных прикладных объектов при записи и восстановлении из архива постоянного хранения.
Встроенная в MFC сериализация обеспечивается классом CObject. Необходимо, чтобы все другие поддерживающие сериализацию классы были производными от CObject и перегружали функцию CObject::Serialize(). Задача Serialize() заключается в архивировании отдельных данных класса и сохранении и восстановлении их из объекта MFC-класса CArchive.
CArchive служит посредником между сериализуемым объектом и средой хранения данных и всегда связывается с объектом CFile. Обычно последний представляет дисковый файл, но ничто не запрещает ему представлять и файл в памяти. Например, можно связать CArchive с объектом CSharedFile для сериализации данных в буфере (или из буфера) обмена Windows. Кроме того, объект CArchive поддерживает механизм буферизации, сохраняющий типы при чтении и записи сериализуемых объектов в и из объекта CFile.
Отдельно взятый объект CArchive можно применять либо для хранения данных, либо для их загрузки, но никогда - для обеих операций одновременно. Время жизни CArchive ограничено одним проходом записи в файл или чтения объектов из файла. Для сериализации в файл и восстановления из файла создаются отдельные объекты CArchive. Предназначение CArchive (запись или чтение) можно определить, обратившись к функции CArchive::IsStoring(), возвращающей булево значение.
В классе CArchive определены операторы помещения в поток (<<) и извлечения из потока (>>). Они применяются так же, как и в стандартных классах потоков C++. Это проиллюстрировано в следующем коде:
if (ar. IsStoring())
{
ar << m_string;
}
else
{
ar >> m_string;
}