"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo renderizar un marco OpenGL en un formulario de C++ Builder usando TForm::Handle?

¿Cómo renderizar un marco OpenGL en un formulario de C++ Builder usando TForm::Handle?

Publicado el 2024-11-07
Navegar:517

How to Render an OpenGL Frame in a C   Builder Form Using TForm::Handle?

Renderizar un marco OpenGL en C Builder

Pregunta

Quiero renderizar un marco OpenGL dentro de un formulario en C Builder, pero no Encuentro problemas al seguir el código de inicio OpenGL proporcionado. ¿Cómo puedo resolver esto?

Respuesta

Utilizando TForm::Handle como identificador de ventana

La solución radica en usar TForm::Handle como identificador de ventana.

Implementación de muestra

Aquí hay un ejemplo adaptado de una versión anterior de C Builder:

int TForm1::ogl_init()
{
    if (ogl_inicialized)
        return 1;
    hdc = GetDC(Form1->Handle); // Get device context
    PIXELFORMATDESCRIPTOR pfd;
    // Set pixel format for the DC
    ...
    // Create current rendering context
    hrc = wglCreateContext(hdc);
    if (hrc == NULL)
    {
        ShowMessage("Could not initialize OpenGL Rendering context !!!");
        ogl_inicialized = 0;
        return 0;
    }
    if (!wglMakeCurrent(hdc, hrc))
    {
        wglDeleteContext(hrc); // Destroy rendering context
        ogl_inicialized = 0;
        return 0;
    }
    // ...
    ogl_inicialized = 1;
    return 1;
}

Notas adicionales

  • Incluya los encabezados necesarios: y
  • Crea un temporizador para activar el renderizado.
  • Administra eventos para cambiar el tamaño del formulario, repintar y escribir con la rueda del mouse.
  • Asegúrate de que gl.h esté incluido en el proyecto.
  • Consulta el enlaces proporcionados para técnicas OpenGL más avanzadas.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3