Возможность изменять цвет фона окна OpenGL
удобно реализовать с помощью отдельного метода
класса:
void
COpenGL::SetBkColor()
{
//====== Расщепление цвета на три компонента
GLclampf red =
GetRValue(m_clrFillColor)/255 . f,
green = GetGValue(m_clrFillColor)/255.f,
blue = GetBValue(m_clrFillColor)/255.f;
//======
Установка
цвета фона
(стирания)
окна
glClearColor (red,
green, blue, O.f);
//======
Непосредственное стирание
glClear(GL_COLOR_BUFFER_BIT |
GL_DEPTH_BUFFER_BIT);
}
Вызов этого метода должен происходить при
первоначальном создании окна, то есть внутри
OnCreate, и при каждом изменении стандартного
свойства (stock property) в окне свойств. Первое
действие мы уже выполнили, а второе необходимо
сделать, изменив тело функции OnFillColorChanged:
void
COpenGL::OnFillColorChanged()
{
//====== Если выбран системный цвет,
if
(m_clrFillColor & 0x80000000)
//====== то выбираем его по индексу
m_clrFillColor =
GetSysColor(m_clrFillColor & Oxlf);
//====== Изменяем
цвет фона окна OpenGL
SetBkColor ();
} |