| 发表于:2007-05-03 19:20:157楼 得分:0 |
#include <windows.h> // windows的头文件 #include <gl/gl.h> // 包含最新的gl.h,glu.h库 #include <gl/glu.h> // 包含opengl实用库 #include <gl/glaux.h> #include <stdio.h> // 标准输入/输出库的头文件 #pragma comment(lib, "opengl32 ") #pragma comment(lib, "glu32 ") #pragma comment(lib, "glaux ") ...... static pixelformatdescriptor pfd= // /pfd 告诉窗口我们所希望的东东,即窗口使用的像素格式 { sizeof(pixelformatdescriptor), // 上述格式描述符的大小 1, // 版本号 pfd_draw_to_window ¦ // 格式支持窗口 pfd_support_opengl ¦ // 格式必须支持opengl pfd_doublebuffer, // 必须支持双缓冲 pfd_type_rgba, // 申请 rgba 格式 bits, // 选定色彩深度 0, 0, 0, 0, 0, 0, // 忽略的色彩位 0, // 无alpha缓存 0, // 忽略shift bit 0, // 无累加缓存 0, 0, 0, 0, // 忽略聚集位 16, // 16位 z-缓存 (深度缓存) 0, // 无蒙板缓存 0, // 无辅助缓存 pfd_main_plane, // 主绘图层 0, // reserved 0, 0, 0 // 忽略层遮罩 }; if (!(hdc=getdc(hwnd))) // 取得设备描述表了么? { killglwindow(); // 重置显示区 messagebox(null, "不能创建一种相匹配的像素格式 ", "错误 ",mb_ok ¦mb_iconexclamation); return false; // 返回 false } if (!(pixelformat=choosepixelformat(hdc,&pfd))) // windows 找到相应的象素格式了吗? { killglwindow(); // 重置显示区 messagebox(null, "不能设置像素格式 ", "错误 ",mb_ok ¦mb_iconexclamation); return false; // 返回 false } if(!setpixelformat(hdc,pixelformat,&pfd)) // 能够设置象素格式么? { killglwindow(); // 重置显示区 messagebox(null, "不能设置像素格式 ", "错误 ",mb_ok ¦mb_iconexclamation); return false; // 返回 false } if (!(hrc=wglcreatecontext(hdc))) // 能否取得着色描述表? { killglwindow(); // 重置显示区 messagebox(null, "不能创建opengl渲染描述表 ", "错误 ",mb_ok ¦mb_iconexclamation); return false; // 返回 false } if(!wglmakecurrent(hdc,hrc)) // 尝试激活着色描述表 { killglwindow(); // 重置显示区 messagebox(null, "不能激活当前的opengl渲然描述表 ", "错误 ",mb_ok ¦mb_iconexclamation); return false; // 返回 false } movewindow(hwnd,200,100,width,height,true); showwindow(hwnd,sw_show); // 显示窗口 setforegroundwindow(hwnd); // 略略提高优先级 setfocus(hwnd); // 设置键盘的焦点至此窗口 大致是这样 | | |
|