设为首页】 【加入收藏】 【网站地图】 【商品折扣
娱乐一生 娱乐明星
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
首页  |  java  |  .NET  |  C/C++  |  网页技术  |  php  |  asp  |  delphi  |  VC  |  VB开发  |  游戏开发  |  软件工程  |  Power Builder  |  Linux开发  |  Windows开发技巧
当前位置:首页 >> VC.NET >> 如何VC下用ATL做一个OpenGL的(COM)控件

如何VC下用ATL做一个OpenGL的(COM)控件 -

  

  目的:由于在写OpenGL程序的时候这些东西每次都要写一遍,而且特别繁琐!为了刚步入OpenGL人提供一个界面控件,让他们较早的看到自己写的OpenGL程序的效果!让他们觉得OpenGL的神奇! 

  作者:王卫星(wangweixing2000) 

  1, 新建一个ATL空项目(项目名OpenGL_ATL) 

  2, 添加一个ATL对象(MyControl)(VC6下为Full Control,VC7下为ATL控件)必须选中Su ort Co ection 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::Setu ixelFormat(HDC hdc)

{

 tatic PIXELFORMATDESCRIPTOR pfd =

 {

 izeof(PIXELFORMATDESCRIPTOR),  // size of this pfd

 1,  // version number

 FD_DRAW_TO_WINDOW |  // su ort window

 FD_SU ORT_OPENGL |  // su ort OpenGL

 FD_DOUBLEBUFFER, // double buffered

 FD_TYPE_RGBA,  // RGBA type

 24, // 24-bit color depth

 0, 0, 0, 0, 0, 0, // color bits ignored

 0,  // no alpha buffer 

0,  // shift bit ignored

 0,  // no accumulation buffer

 0, 0, 0, 0, // accum bits ignored

 32, // 32-bit z-buffer

 0,  // no stencil buffer

 0,  // no auxiliary buffer

 FD_MAIN_PLANE, // main layer

 0,  // reserved

 0, 0, 0 // layer masks ignored

 };

 int pixelformat;



 if ((pixelformat = ChoosePixelFormat(hdc, &am fd)) == 0)

 {

 ATLA ERT(FALSE);

 return FALSE;

 }



 if (SetPixelFormat(hdc, pixelformat, &am fd) == FALSE)

 {

 ATLA ERT(FALSE);

 return FALSE;

 }



 return TRUE;

[1] [2] 下一页 



 

娱乐图摘

更多 >>

靓丽清纯美女meimei

美女私房全裸照
导演劝女演员脱衣服(视频)

大胆火辣人体艺术写真(图)

黑丝妹妹热辣诱惑-丝袜美女妹妹

PLMM 漂亮妹妹图集-妹妹图库

全球美女图库-美女集中营

52MM 我爱漂亮妹妹-制服妹妹诱惑

图王图库-世界美女明星图片资料库
美女写真集锦

激情两性-解密性生活
浴室MM湿身内衣诱惑
邻家小妹洗澡被偷拍(视频)

热点文章

更多

· 编程必学:控件的拖动和缩放技术全解
· 如何在VC中实现淡入淡出的启动画面
· VC.NET的Direct3D极速入门宝典
· VC++.NET中定义和使用MFC DLL
· 如何创建无模式对话框
· 体验Visual Studio 2005中C++语言
· 利用Visual C++实现系统托盘程序
· .NET重要技术思考-DCOM 的技术
· 基于VC.NET的GDI+编程之CImage
· VC++ 6.0中实现三叉切分窗口与多视图

热点文章

更多