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


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


Так как мы работаем с объектами класса CArray в различных файлах, удобнее всего включить его в самом конце файла stdafx.h.

// Включаемый файл stdafx.h

// ...

// Включаемый файл для шаблона CArray

#include <afxtempl.h>

Теперь у нас есть структура для хранения геометрических фигур, нарисованных в окне. Мы должны ее заполнить. Так как за взаимодействие с пользователем отвечает класс окна просмотра, мы изменяем определенные нами ранее методы OnLButtonDown и OnRButtonDown таким образом, чтобы одновременно с выводом на экран они сохраняли параметры новой фигуры в массиве arrayFig.

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

// Метод OnLButtonDown класса CSingleView

// Обрабатывает сообщения левой кнопки мыши

 

void CSingleView::OnLButtonDown(UINT nFlags, CPoint point)

{

      // Получаем указатель на документ (объект класса CSingleDoc)

      CSingleDoc* pDoc = GetDocument();

 

      // Проверяем указатель pDoc

      ASSERT_VALID(pDoc);

 

      // Отображаем на экране окружность

      CClientDC dc(this);

      dc.Ellipse(point.x-10, point.y-10,

             point.x+10,point.y+10);

 

      // Сохраняем характеристики окружности

      CFigure OneFigure;

      OneFigure.xyFigCenter = point;

      OneFigure.cType = 'E';

 

      // Добавляем к массиву, определяющему документ, новый

      // элемент

      pDoc->arrayFig.Add(OneFigure);

 

      // Вызываем метод OnLButtonDown базового класса CView

      CView::OnLButtonDown(nFlags, point);

}

 

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

// Метод OnRButtonDown класса CSingleView

// Обрабатывает сообщения правой кнопки мыши

 

void CSingleView::OnRButtonDown(UINT nFlags, CPoint point)

{

      // Получаем указатель на документ (объект класса CSingleDoc)

      CSingleDoc* pDoc = GetDocument();

 

      // Проверяем указатель pDoc

      ASSERT_VALID(pDoc);

 

      // Отображаем на экране квадрат




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



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