Реакции
на сообщения 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
}