Microsoft Visual C++ и MFC. Программирование для Win95 и WinNT


Простейший графический редактор - часть 3


Создадим новый класс CFigure, который будет представлять геометрические фигуры - окружности и квадраты. Координаты этих фигур мы будем определять по координатам их центра. Для этого в состав класса включим элемент xyFigCenter класса CPoint. Класс CPoint определяет координаты точки и содержит два элемента x и y, соответствующие координатам точки по оси ординат и абсцисс. Краткое описание класса CPoint представлено в разделе “Класс CPoint - точка на плоскости” главы “Некоторые классы MFC”.

Второй элемент cType типа char определяет форму геометрической фигуры. Если cType содержит значение 'E' значит данный объект представляет окружность, а если 'R' - квадрат.

Вы можете создать для класса CFigure отдельный файл, но сейчас мы просто добавим его в самое начало файла SingleDoc.h. Вот определение класса CFigure.

//////////////////////////////////////////////////////////////

// Класс определяет геометрическую фигуру

class CFigure

{

public:

      // Координаты центра фигуры

      CPoint  xyFigCenter;

 

      // Тип фигуры: 'E' - оокружность, 'R' - кволрат

      char      cType;

};

Один объект класса CFigure представляет одну геометрическую фигуру. Так как документ нашего приложения может содержать несколько фигур, мы воспользуемся шаблоном CArray, чтобы определить массив объектов класса CFigure. Вы можете получить дополнительную информацию о шаблоне CArray в разделе “Коллекции” главы “Некоторые классы MFC”.

Определение этого массива, который получил название arrayFig, помещаем в класс документа CSingleDoc, в атрибутах класса.

//////////////////////////////////////////////////////////////

// Класс CSingleDoc

class CSingleDoc : public CDocument

{

protected:

      CSingleDoc();

      DECLARE_DYNCREATE(CSingleDoc)

 

// Attributes

public:

      CArray<CFigure, CFigure&> arrayFig;

Если вы используете шаблоны классов CArray, CMap или CList, вы должны включить в исходный текст приложения файл afxtempl.h. В данном файле содержатся определения этих шаблонов.




Начало  Назад  Вперед



Книжный магазин