Иллюстрированный самоучитель по 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[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

    }



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