Реакции на сообщения Windows



Реакции на сообщения Windows

Вспомните, как вы ранее вводили в различные классы реакции на сообщения Windows и повторите эти действия для класса cOGView столько раз, сколько необходимо, чтобы в нем появились стартовые заготовки функций обработки следующих сообщений:

  • WM_CREATE — приложение требует создать окно вызовом CreateEx или Create;
  • WM_DESTROY — окно исчезло с экрана, но не из памяти;
  • WM_ERASEBKGND — фон окна должен быть стерт;
  • WM_LBUTTONDOWN — нажата левая кнопка мыши;
  • WM_LBUTTONUP — отпущена левая кнопка мыши;
  • WM_MOUSEMOVE — курсор мыши перемещается;


  • WM_RBUTTONDOWN — нажата правая кнопка мыши;
  • WM_RBUTTONUP — отпущена правая кнопка мыши;
  • WM_SIZE — изменился размер окна;
  • WM_TIMER — истек квант времени какого-то из таймеров.

В конструктор класса вставьте код установки начальных значений переменных:

COGView::COGView()

{

//====== Контекст передачи пока отсутствует

m_hRC = 0;

//====== Начальный разворот изображения

m_AngleX = 35.f;

m_AngleY = 20.f;

//====== Угол зрения для матрицы проекции

m_AngleView = 45.f;

//====== Начальный цвет фона

m_BkClr = RGB(0, 0, 96);

// Начальный режим заполнения внутренних точек полигона

m_FillMode = GL_FILL;

//====== Подготовка графика по умолчанию

DefaultGraphic();

//====== Начальное смещение относительно центра сцены

//====== Сдвиг назад на полуторный размер объекта

m_zTrans = -1.5f*m_fRangeX;

m_xTrans = m_yTrans = 0.f;

//== Начальные значения квантов смещения (для анимации)

m_dx = m_dy = 0.f;

//====== Мышь не захвачена

m_bCaptured = false;

//====== Правая кнопка не была нажата

m_bRightButton = false;

//====== Рисуем четырехугольниками

m_bQuad = true;

//====== Начальный значения параметров освещения

m_LightParam[0] = 50; // X position

m_LightParam[l] = 80; // Y position

m_LightParam[2] = 100; // Z position

m_LightParam[3] = 15; // Ambient light

m_LightParam[4] = 70; // Diffuse light

m_LightParam[5] = 100; // Specular light

m_LightParam[6] = 100; // Ambient material

m_LightParam[7] = 100; // Diffuse material

m_LightParam[8] = 40; // Specular material

m_LightParam[9] = 70; // Shininess material

m_LightParam[10] =0; // Emission material

}



Содержание раздела