Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СОВРЕМЕННЫЕ МЕТОДЫ ПРОГРАММИРОВАНИЯ.docx
Скачиваний:
15
Добавлен:
01.04.2025
Размер:
797.27 Кб
Скачать

21.3. Класс cFile

Класс CFile предназначен для работы с файлами, используется как базовый класс для других классов MFC, предназначенных для работы с файлами. Обеспечивает небуфферизованный двоичный ввод/вывод в файлы.

В класс включено несколько конструкторов.

Конструктор по умолчанию:

CFile();

Конструктор с параметрами:

CFile(LPCTSTR lpszFileName,UINT nOpenFlags),

где lpszFileName – указатель на строку, содержащую имя файла и путь к нему;

nOpenFlags – целочисленная переменная, определяющая режимы доступа к файлу или его атрибуты и принимающая следующие значения:

CFile::modeCreate – создать новый файл; если файл уже существует, информация из него удаляется;

CFile::modeRead – открыть файл для чтения; для этого файл должен находиться в заданном каталоге; если файл отсутствует, возникает ошибка;

CFile::modeWrite – открыть файл для записи; если указанный файл не найден, он создается в указанном каталоге; указатель файла устанавливается на начало файла; если в файле была какая-либо информация, она стирается.

Пример создания объекта класса CFile:

CFile MyFile("my.txt",CFile::modeRead);

В класс включены методы для работы с файлами:

Virtual UINT Read(void* lpBuf,UINT nCount) – чтение из файла; lpBuf – указатель на буфер, в который помещается прочитанная информация, nCount – размер буфера; возвращает количество информации в байтах, помещенной в буфер;

virtual void Write(const void* lpBuf,UINT nCount) – запись в файл; имеет те же параметры, что и метод Read();

virtual LONG Seek(LONG lOff,UINT nFrom) – позволяет произвольно устанавливать указатель текущей позиции в файле; lOff – смещение в байтах, nFrom – позволяет устанавливать начало отсчета: значение CFile::begin – отсчет от начала файла; CFile::current – отсчет от текущей позиции указателя; CFile::end – отсчет от конца файла;

Open() – открытие файла в соответствии с выбранным режимом;

Close() – закрытие файла.

Пример сохранения строки в текстовом файле:

CFile myfile;

char* pFileName="test.txt";

myfile.Open(pFileName,CFile::modeCreate|CFile::

modeWrite);

myfile.Write("123456789",4);

myfile.Close();

Результатом выполнения этого фрагмента программы будет создание файла test.txt и запись в него строки "1234".

21.4. Класс cPoint

Класс CPoint представляет собой оболочку для структуры POINT (точка) из библиотеки Win32 API, которая объявлена следующим образом:

typedef struct tagPOINT

{

LONG x; //абсцисса точки

LONG y; //ордината точки

} POINT;

Класс CPoint имеет также свойства x и y, представляющие собой координаты точки. Создание объекта точки выполняется с помощью одного из нескольких вариантов конструкторов, включенных в класс.

Один из вариантов создания объекта точки:

CPoint point(200,125);

или

int x=200, y=125;

CPoint point(x, y);

Доступ к свойствам класса открытый, поэтому изменение значений свойств объекта не требует использования функций:

point.x =250;

point.y=point.x–100;

21.5. Класс cRect

Класс CRect включает в себя данные, однозначно определяющие прямоугольную область, и операции над такими областями. Класс представляет собой надстройку структуры RECT, входящей в интерфейс Win32 API:

typedef struct tagRECT

{

LONG left; //Абсцисса левого верхнего угла

//прямоугольника

LONG top; //Ордината левого верхнего угла

//прямоугольника

LONG right; //Абсцисса правого нижнего угла

//прямоугольника

LONG bottom; //Ордината правого нижнего угла 

//прямоугольника

} RECT;

Создание объекта прямоугольника возможно разными способами, так как в класс CRect включено несколько конструкторов.

Конструктор по умолчанию:

CRect( );

Конструктор с параметрами:

CRect(int l,int t,int r,int b);

Приведем следующие способы создания объекта прямоугольника:

CRect rect; //Создание объекта без инициализации

//полей

CRect rect (20,30,170,150); //Создание объекта

//и инициализация его полей

При задании значений полей надо помнить, что значения координат левого верхнего угла должны быть меньше значений координат правого нижнего. Такой прямоугольник называется нормализованным. Ненормализованный прямоугольник можно нормализовать с помощью метода класса NormalizeRect().

Класс также содержит методы для работы с данными, например:

Width() – возвращает ширину прямоугольника,

Height() – возвращает высоту прямоугольника,

SetRect() – позволяет изменить размеры уже созданного прямоугольника,

PtInRect() – позволяет проверить, лежит ли заданная точка внутри прямоугольника, определяемого текущим объектом.

21.6. Создание приложений на основе библиотеки MFC в VC++ 6.0

Для создания приложения на основе MFC используется тип проекта MFC AppWizard (exe) [20–21]. Это полноценное 32-разрядное приложение для ОС Windows, использующее для взаимодействия с пользователем стандартное графическое окно Windows.

Мастер приложений позволяет создавать три варианта приложений такого типа: SDI,MDI,Dialog Based. Для каждого варианта приложения создается особый каркас проекта.

SDI-приложение (Single Document Interface), или приложение с интерфейсом одного документа, позволяет программе работать только с одним документом. Примером такого приложения могут быть программы текстовый редактор Блокнот или графический редактор Paint.

MDI-приложение (Multiple Documents Interface), или приложение с интерфейсом многих документов, может одновременно работать с несколькими документами или с несколькими копиями одного и того же документа. Примером такого приложения могут быть некоторые версии текстового редактора Word, Adobe PhotoShop.

Dialog Based Application или приложение, основанное на диалоге, имеет отличительную черту – диалоговую панель, используемую для ввода данных в программу пользователем или для вывода результатов вычислений на экран.

Для создания каркаса приложения необходимы действия:

     Вызов команды File/New…

     Настройка параметров проекта в окне AppWizard/Projects:

o     тип приложения – MFC AppWizard (exe),

o     имя проекта (Name),

o     размещение проекта (Location),

o     флажок создания нового рабочего пространства в состоянии «установлен».

o     нажать OK.

     Выбор варианта приложения (Single document, Multiple documents или Dialog based).

В результате будет создан каркас MFC-приложения, в который входят модули, содержащие описания основных классов приложения, и файл ресурсов *.rc, содержащий описания диалоговых панелей, строк, акселераторов и других ресурсов. Состав классов, включенных в приложение, зависит от выбранного варианта приложения.