Вспомните, как вы ранее вводили в различные
классы реакции на сообщения 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
} |