VB+OpenGL笔记
1、环境
1、软件VB6.0会计研究
2、vbogl.tlb 文件
2、实例
荐股英雄榜1、工程-引用vbogl.tlb 文件
2、代码如下
Dim hRC As Long '全局变量
Private Sub Form_Load()
Call EnableOpenGL(Picture1.hDC)
End Sub
'启用OGL科研能力评价>试题研究
Sub EnableOpenGL(ghDC As Long)
On Error GoTo Err
Dim pfd As PIXELFORMATDESCRIPTOR 'pfd像素格式设置. ZeroMemory pfd, Len(pfd)
pfd.nSize = Len(pfd) '大小
pfd.nVersion = 1 '版本
pfd.dwFlags = PFD_DRAW_TO_WINDOW Or PFD_SUPPORT_OPENGL Or PFD_DOUBLEBUFFER '标志
pfd.iPixelType = PFD_TYPE_RGBA '像素类型
pfd.cColorBits = 24 '颜位数
pfd.cDepthBits = 32 '位宽
pfd.iLayerType = PFD_MAIN_PLANE '图层类型
Dim PixFormat As Long
PixFormat = ChoosePixelFormat(ghDC, pfd) '动力学与控制学报选择设备中最匹配我们所设置的像素
SetPixelFormat ghDC, PixFormat, pfd '设置成当前的像素
hRC = wglCreateContext(ghDC) '建立翻译描述表
wglMakeCurrent ghDC, hRC '将建立的翻译描述表设置为当前
Exit Sub
Err:
MsgBox "Can't create OpenGL context!", vbCritical, "Error"
End
End Sub
'禁用OGL
Sub DisableOpenGL()
wglMakeCurrent 0, 0
wglDeleteContext hRC
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call DisableOpenGL
End Sub
Private Sub Display()
glClearColor 0#, 0#, 1#, 0# '清空颜缓存的RGBA颜值
glClear clrColorBufferBit '为绘下帧曲面清除缓冲区
glColor3f 0.8, 0.3, 0.5 '设置显示的字体颜
glPushMatrix '依据当前模式(模式-视图矩阵)使矩阵入栈 glBegin glBeginModeConstants.bmPolygon '开始绘图,绘制一个三角形
glVertex2f -0.5, -0.5 '三角形的3个顶点
glVertex2f -0.5, 0.5
glVertex2f 0.5, -0.5
glEnd
glPopMatrix '依据当前模式(模式-视图矩阵)使矩阵出栈
SwapBuffers Picture1.hDC '切换缓存
End Sub六合
Private Sub Picture1_Paint()
Display
End Sub