Иллюстрированный самоучитель по Visual Studio .NET

Реакции на сообщения 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[1] = 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
}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.