资源简介

基于Windows SDK下的API实现OpenGL框架程序,实现XYZ轴平移、XYZ旋转操作,可以按快捷键操作,也可以点击窗口中按钮控制。有下拉式菜单与右键菜单。按下鼠标左键能控制旋转,也可以设置自动旋转。总之,这个框架已经完成了对物体的大部分控制功能,是一个比较完整的框架。

资源截图

代码片段和文件信息

#include 
#include 
#include 

#define ID_TIMER    1                        // 自动旋转时钟

GLfloat rotateStep = 30.0f;
GLfloat moveStep = 0.50f;

GLfloat xRotSpeed;                           // 设置在X方向的旋转的速度定义
GLfloat yRotSpeed;                           // 设置在Y方向的旋转的速度定义
GLfloat zRotSpeed;                           // 设置在Z方向的旋转的速度定义

GLfloat xPosition;                           // X方向的位置定义
GLfloat yPosition;                           // Y方向的位置定义
GLfloat zPosition;                           // Z方向的位置定义

GLboolean keys[256];                                         // 用于键盘例程的数组
static GLboolean mouseFlag = FALSE;

GLvoid Init();
GLvoid ChangeSize(GLsizei GLsizei);
GLvoid Draw3D();
GLuint KeyPress();
GLuint MainWndMenu();
GLvoid CALLBACK timerProc(HWNDUINTUINTDWORD);
LRESULT CALLBACK WndProc(HWND UINT WPARAM LPARAM);        // 窗体过程函数声明
int commandBtns(HWND);

HINSTANCE hInstance;                                         // 系统实例句柄
HWND      hWndMain;                                          // 主窗体句柄
HMENU     hPopup;
HWND      hWnd;                                              // 窗体句柄变量定义
HDC       hDC;                                               // 设备描述表变量定义
PIXELFORMATDEscriptOR pfd;                                   // 像素格式结构变量定义
HGLRC     hGLRC;                                             // OpenGL渲染描述表变量定义

HMENU hMenuMain;                                             // 主窗体菜单句柄
HMENU hMenuWindow;
#define WINDOW_MENU_POS    1000
#define IDM_CTRL           2001
#define IDM_AUTO           2002
#define IDM_STOP           2003
#define IDM_BLACK          2004
#define IDM_GRAY           2005
#define IDM_GRAY2          2006
#define IDM_WHITE          2007

HWND    hLabel;
HWND    hCmdBtns;

#define IDC_frame          10000                // 框架控件唯一标识
#define IDC_RotateX1       10001                // 按钮控件唯一标识
#define IDC_RotateX2       10002                // 按钮控件唯一标识
#define IDC_RotateY1       10003                // 按钮控件唯一标识
#define IDC_RotateY2       10004                // 按钮控件唯一标识
#define IDC_RotateZ1       10005                // 按钮控件唯一标识
#define IDC_RotateZ2       10006                // 按钮控件唯一标识

#define IDC_TranslateX1    10011                // 按钮控件唯一标识
#define IDC_TranslateX2    10012                // 按钮控件唯一标识
#define IDC_TranslateY1    10013                // 按钮控件唯一标识
#define IDC_TranslateY2    10014                // 按钮控件唯一标识
#define IDC_TranslateZ1    10015                // 按钮控件唯一标识
#define IDC_TranslateZ2    10016                // 按钮控件唯一标识
//********************************************************************
//*  打开OpenGL事件定义                                              *
//********************************************************************
//
GLuint Open(HWND phWnd)
{
  hWnd = phWnd;

  hDC = GetDC(hWnd);

  pfd.nSize           = sizeof(PIXELFORMATDEscriptOR);                          // 格式描述符的大小
  pfd.nVersion        = 1;   

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      56781  2018-04-01 20:32  WinGUI+OpenGL\ButtonControl.exe

     文件      22955  2018-04-03 08:44  WinGUI+OpenGL\WinGUI+OpenGL.c

     文件    5917530  2018-04-01 20:49  WinGUI+OpenGL\WinGUI+OpenGL.gif

     目录          0  2018-04-03 08:50  WinGUI+OpenGL

----------- ---------  ---------- -----  ----

              5997266                    4


评论

共有 条评论