如何在VC6或者VC7下用 ATL做一个OpenGL的(COM)控件?
目的:由于在写OpenGL程序的时候这些东西每次都要写一遍,而且特别繁琐!为了刚步入OpenGL人提供一个界面控件,让他们较早的看到自己写的OpenGL程序的效果!让他们觉得OpenGL的神奇!
1, 新建一个ATL空项目(项目名OpenGL_ATL)
2, 添加一个ATL对象(MyControl)(VC6下为Full Control,VC7下为ATL控件)必须选中Support Connection Points为了添加事件。
3, 在对象的.H头文件中添加:
#include <gl/gl.h>
#include <gl/glu.h>
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glu32.lib")
4, 在接口实现类添加一个OpenGL 的RC(rendering context)成员变量:
HGLRC m_hRC;
5, 添加一个设置OpenGL像素格式(接口实现类的)成员函数:
// Set OpenGL pixel format for given DC
BOOL MyControl::SetupPixelFormat(HDC hdc)
{
static PIXELFORMATDESCRIPTOR pfd =
{
sizeof(PIXELFORMATDESCRIPTOR), // size of this pfd
1, // version number
PFD_DRAW_TO_WINDOW | // support window
PFD_SUPPORT_OPENGL | // support OpenGL
PFD_DOUBLEBUFFER, // double buffered
PFD_TYPE_RGBA, // RGBA type
24, // 24-bit color depth
0, 0, 0, 0, 0, 0, // color bits ignored
0, // no alpha buffer
- 上一篇:利用Visual C++设置桌面墙纸
- 下一篇:VC利用boost库解析正则表达式