Listing 2: The function that OnPaint calls

void CGlrotateDlg::RedrawScene()
{
  if (m_hGLContext != wglGetCurrentContext())
  {
    if (FALSE == wglMakeCurrent
      (::GetDC(this->GetSafeHwnd()),m_hGLContext))
    {
      TRACE("CGlrotateDlg::RedrawScene() - 
        wglMakeCurrent() call FAILED!\r\n");
      return;
    }
  }

  CPaintDC dc(this); // device context for painting  
  
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

  glPushMatrix();

  glRotatef(m_fTheta, 0.0, 0.0, 1.0);
  glTranslatef(0.0, 0.0, 0.0);

  glCallList(m_iDisplayListId);

  glPopMatrix();

  glFlush();

  SwapBuffers(dc.m_ps.hdc);
}
— End of Listing —