⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex8_3.cpp

📁 C++ Builder5.0编程员指南1
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include "ex8_3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void _fastcall TForm1::OpenGLDraw()
{
    glColor3f(0,0,1);
    glBegin(GL_LINES);
        glVertex2f(50,10);
        glVertex2f(15,-25);
        glVertex2f(-60,45);
    glEnd();
    HDC hDC=wglGetCurrentDC();
    SwapBuffers(hDC);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    int PixelFormat;
    HDC hDC;
    hDC=GetDC(this->Handle);
    PIXELFORMATDESCRIPTOR pfd={
        sizeof(PIXELFORMATDESCRIPTOR),
        1,
        PFD_DRAW_TO_WINDOW|
        PFD_SUPPORT_OPENGL|
        PFD_DOUBLEBUFFER,
        PFD_TYPE_RGBA,
        24,
        0,0,0,0,0,0,
        0,0,
        0,0,0,0,0,
        32,
        0,
        0,
        PFD_MAIN_PLANE,
        0,
        0,0,
     };
     PixelFormat=ChoosePixelFormat(hDC,&pfd);
     SetPixelFormat(hDC,PixelFormat,&pfd);
     hRC=wglCreateContext(hDC);
     wglMakeCurrent(hDC,hRC);
     w=ClientWidth;
     h=ClientHeight;
     glClearColor(1.0f,1.0f,1.0f,0.0f);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormResize(TObject *Sender)
{
    GLfloat nRange=80.0;
    w=ClientWidth;
    h=ClientHeight;
    if(h==0)
        h=1;
    if(w<=h)
        glOrtho(-nRange,nRange,-nRange*h/w,
                nRange*h/w,-nRange,nRange);
    else
        glOrtho(-nRange*w/h,nRange*w/h,-nRange,
                nRange,-nRange,nRange);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glFlush();
    OpenGLDraw();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
    gluDeleteQuadric(Sphere);
    wglMakeCurrent(NULL,NULL);
    wglDeleteContext(hRC);
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -