开发基于OpenGL的ActiveX控件的方法研究[1]
开发基于OpenGL的应用程序,必须先了解OpenGL的库函数
开发基于OpenGL的应用程序,必须先了解OpenGL的库函数。
它采用C语言风格,提供大量的函数来进行图形的处理和显示。
OpenGL库函数的命名方式非常有规律。
所有OpenGL函数采用了以下格式:<库前缀><根命令><可选的参数个数><可选的参数类型>库前缀有gl、glu、aux、glut、wgl、glx、agl等等,分别表示该函数属于OpenGL那个开发库,从函数名后面中还可以看出需要多少个参数以及参数的类型。
I代表int型,f代表float型,d代表double型,u代表无符号整型。
例如glVertex3fv()表示了该函数属于gl库,参数是三个float型参数指针。
我们用glVertex*()来表示这一类函数。
OpenGL函数库相关的API有核心库(gl)、实用库(glu)、辅助库(aux)、实用工具库(glut)、窗口库(glx、agl、wgl)和扩展函数库等。
从图可以看出,gl是核心,glu是对gl的部分封装。
glx、agl、wgl 是针对不同窗口系统的函数。
glut是为跨平台的OpenGL程序的工具包,比aux功能强大。
扩展函数库是硬件厂商为实现硬件更新利用OpenGL的扩展机制开发的函数。
下面逐一对这些库进行详细介绍。
1.OpenGL核心库核心库包含有115个函数,函数名的前缀为gl。
这部分函数用于常规的、核心的图形处理。
此函数由gl.dll来负责解释执行。
由于许多函数可以接收不同数以下几类。
据类型的参数,因此派生出来的函数原形多达300多个。
核心库中的函数主要可以分为以下几类函数:∙绘制基本几何图元的函数:glBegain()、glEnd()、glNormal*()、glVertex*();∙矩阵操作、几何变换和投影变换的函数:如矩阵入栈函数glPushMatrix(),矩阵出栈函数glPopMatrix(),装载矩阵函数glLoadMatrix(),矩阵相乘函数glMultMatrix(),当前矩阵函数glMatrixMode()和矩阵标准化函数glLoadIdentity(),几何变换函数glTranslate*()、glRotate*()和glScale*(),投影变换函数glOrtho()、glFrustum()和视口变换函数glViewport();∙颜色、光照和材质的函数:如设置颜色模式函数glColor*()、glIndex*(),设置光照效果的函数glLight*() 、glLightModel*()和设置材质效果函数glMaterial();∙显示列表函数:主要有创建、结束、生成、删除和调用显示列表的函数glNewList()、glEndList()、glGenLists()、glCallList()和glDeleteLists();∙纹理映射函数:主要有一维纹理函数glTexImage1D()、二维纹理函数glTexImage2D()、设置纹理参数、纹理环境和纹理坐标的函数glTexParameter*()、glTexEnv*()和glTetCoord*();∙特殊效果函数:融合函数glBlendFunc()、反走样函数glHint()和雾化效果glFog*();∙光栅化、象素操作函数:如象素位置glRasterPos*()、线型宽度glLineWidth()、多边形绘制模式glPolygonMode(),读取象素glReadPixel()、复制象素glCopyPixel();∙选择与反馈函数:主要有渲染模式glRenderMode()、选择缓冲区glSelectBuffer()和反馈缓冲区glFeedbackBuffer();∙曲线与曲面的绘制函数:生成曲线或曲面的函数glMap*()、glMapGrid*(),求值器的函数glEvalCoord*() glEvalMesh*();∙状态设置与查询函数:glGet*()、glEnable()、glGetError()。
activex组件的调用方法
activex组件的调用方法
ActiveX组件是一种可重用的二进制代码,可以在不同的应用程序中使用。
使用ActiveX组件可以提高应用程序的功能和性能。
调用ActiveX组件可以通过以下步骤实现:
1. 在应用程序中添加对ActiveX组件的引用。
2. 创建ActiveX组件的对象。
3. 调用ActiveX组件的方法和属性。
在Visual Basic中,可以使用以下代码来调用ActiveX组件:
' 添加对ActiveX组件的引用
' 如果ActiveX组件位于COM服务器上,必须注册COM服务器
Dim obj As New ComponentName
' 创建ActiveX组件的对象
obj.MethodName
' 调用ActiveX组件的方法和属性
在C#中,可以使用以下代码来调用ActiveX组件:
// 添加对ActiveX组件的引用
// 如果ActiveX组件位于COM服务器上,必须注册COM服务器
ComponentName obj = new ComponentName();
// 创建ActiveX组件的对象
obj.MethodName();
// 调用ActiveX组件的方法和属性
需要注意的是,调用ActiveX组件时可能会遇到版本兼容性问题。
为了避免这种问题,应该确保ActiveX组件的版本与应用程序的版本兼容。
如果需要升级ActiveX组件的版本,应该进行充分的测试和验证,确保没有任何兼容性问题。
做一个OpenGL控件
做一个OpenGL控件做一个OpenGL控件OpenGL是一个独立于窗口的图形库,而图形最终是在窗口系统里绘制出来的,那么OpenGL的绘图命令是怎么在窗口里生成输出的呢?这就是各个系统上的OpenGL实现者需要做的工作了。
在Windows里是通过wgl库完成的,在X-Windows里是通过glx服务器来完成的,至于这些OpenGL实现具体是怎么工作的,请参考sgi 发布的sample implement源码,不过那个代码是用C写的。
在MS-Windows里,wgl库负责将OpenGL的绘制设备RenderContext与GDI的DeviceContext联系起来,使得发到OpenGL的RC里的命令生成的位图能够在GDI DC里绘制出来,你可以把它想象成OpenGL在RC里有一个FrameBuffer,记录着生成的图案,而wgl则负责把FrameBuffer的内容BitBlt到DC上。
当然,这并不是它实际的工作方法,如果想了解更多请参考SGI发布的SDK 资料或联系MS公司。
为了使GDI DC能够接受OpenGL RC的输出,必须为DC选定特别的像素格式,然后建立RC,再用wglMakeCurrent把当前要使用的RC和DC联系起来。
此后我们就可以用OpenGL命令正常工作了。
在一个程序里可以创建多个RC和多个DC,程序中的OpenGL命令会发到被wglMakeCurrent指定为当前的那一组合中。
我并不认为这个初始化过程是个很有意思的工作,这个世界上有很多聪明的程序员也这么想,所以他们发明了glaux库和glut库。
glaux是在著名的OpenGL Programmer Guide里提出的,这本书是OpenGL编程的官方文档,因为它的封皮是红色的,所以通常简称为RedBook。
故名思意,glaux是一套输助库,它使得你无须关心在具体窗口系统里初始化、消息响应的细节,而是使用传统的c/dos程序风格编制OpenGL程序。
在Authorware中使用ActiveX控件编程.
在Authorware中使用ActiveX控件编程ActiveX控件,以前被称作 OLE 控件,是一个标准的用户接口元素,能够快速地把窗体和对话框组装起来。
ActiveX控件还使 Internet 更加生动,为 World Wide Web 页增加了有趣的新功能。
在Authorware4.0及其以上版本中,都增加了对ActiveX控件的支持。
新增的ActiveX Xtra,允许用户在Authorware文件中插入绝大多数ActiveX控件;使用起来,就如同在任何其它支持ActiveX控件的语言环境中一样,方便而快捷。
利用ActiveX Xtra函数功能可方便地管理、调度本机的ActiveX控件资源,包括控件的属性、事件和方法,只需在Authorware文件内部填充ActiveX控件的属性、事件和方法值即可。
ActiveX Xtra的使用范围就象ActiveX控件的可变性一样没有限制。
有各种各样的控件,可以用于浏览INTERNET、创建扩展页、甚至探索虚拟世界。
本文将介绍笔者用ActiveX控件在Authorware中编程的基本方法。
㈠如何插入一个ActiveX控件当您插入一个ActiveX控件到Authorware文件里,它将被包含于一个现场演员Xtra图标中;要如何插入ActiveX控件呢?一般步骤如下:⒈多数ActiveX控件提供有它们自己的安装程序。
紫龋范胍褂玫腁ctiveX控件已被正确安装于WINDOWS系统中。
⒉在流程线上,您想要插入该现场演员Xtra图标的位置单击,这时候出现粘贴手标帜。
⒊从系统菜单上,选择Insert→Control→ActiveX,这时弹出“Select ActiveX Control”(选择ActiveX控件)对话框(如下图)。
⒋在对话框里的Control Description(控件描述)列表框中,单击选定您所需的ActiveX控件,然后单击“OK”按钮。
这时弹出“ActiveX Control Properties”(ActiveX控件属性)对话框(如下图)。
【转】C#开发ActiveX可行性研究
【转】C#开发ActiveX可⾏性研究由于公司需要开发WEB打印模块,⽽且打印模块⼜⽐较复杂,要让⽤户⾃⼰能设计摸板,能控制格式,想来想去只能⽤ActiveX才能实现,期间鄙⼈也研究了⽔晶报表,鄙⼈总结出来⼀条,⽔晶报表做报表⾏,但是如果要想做帐单的打印,还是不⾏的,第⼀就是效率不⾏,第⼆就是格式控制能⼒不强,不过效率问题,鄙⼈后⾯也差不多解决了,具体解决⽅法鄙⼈计划在下⼀篇博客⾥写出来,还包括⾃定义报表传⼊参数的问题鄙⼈也解决了,最后为了能⽅便客户鄙⼈研究了ActiveX(因为我们公司做的是产品,所以东西不做到好⽤不⾏).本来我是想⽤VC++开发ActiveX怎奈技术有限,想实现VC++ 和服务器交互还有⼀定难度,⽽且也没办法实现打印,所以转到了C#下⾯开发.开发ActiveX主要还是在CNBLOGS⾥找了篇⽂章⽐较受益,红马的使⽤C#开发ActivX系列,照着⽂章把算是打印模块也开发完毕了,期间为实现了JS掉⽤Activx也测试了⽆数次,最后还是跌跌撞撞做好了.后⾯⼜要开发⾝份证扫描必须得⽤ActivX调⽤JS,后⾯⼜找了这篇⽂章,按这位⽼兄的⽅法也实现了.还要注意⼀点IE7下如果你写的ActiveX⽤不了,不是因为你写的程序有问题,⽽是⼀个安全设置的问题,我也是研究了很久,具体哪个设置我⼀下忘记了,因为我的IE换成IE6了,明天装IE7了再告诉⼤家.不过最后我也总结出来了,⽤C#开发ActiveX是可以的,唯⼀的遗憾就是要装.NET,不过其实也是可以不装的,我也发⾏了两个版本,⼀个是不⽤装,⼀个是要装的,不⽤装的⽤飞信脱,但⽤了飞信脱后安装包太⼤了,建议还是就装下.NET吧,毕竟现在也快普及.NET了,如果⼤家还有不⽤飞信脱来实现不装.net的⽅法请告之.还有,其实ActiveX还可以实现⼀些JS没办法实现的功能,⽐如PUSH模式,我就⽤C#实现了⼀个PUSH模式,让C#和服务交互,然后当数据有改变时,就⽤C#调⽤JS的⽅法,这样就不⽤⽼是⼀直请求了.其实还可以⽤FLASH来实现的,但是我对AS脚本不熟悉,我⼀个朋友对这⽅⾯有些研究,如果⼤家有需要了解的话,我帮⼤家请教下我朋友.再就是鄙⼈研究了 IHTMLDocument IHTMLDocument2 IHTMLDocument3 正计划写个⽤C#来操作HTML的ACTIVEX,也许⽤C#操作HTML ⽐JS的效率⾼⽽且还不会有内存泄露问题,不过还没测试,现在完全还是构思中,摆在眼前还有个最⼤的问题!就是鄙⼈⼀直还不知道怎么调试ActiveX的,忘记⼤家有知道的,请告之.谢谢!还有鄙⼈这次也算是做了个⼤项⽬,也是我设计的,我也是开发主⼒,公司不⼤,也总结了很多经验,今后我会⼀⼀写出来.也希望⼤家能多多发表⾃⼰的经验,谢谢!最后再罗嗦⼀句,代码由于商业机密问题,鄙⼈不能贴出来,如果⼤家实在需要留下EMAIL我会发给⼤家!再提醒下⼤家! 如果有知道怎么调式ActivX的,⿇烦您请告之,谢谢了!。
基于MFC的ActiveX控件开发
基于MFC的ActiveX控件开发基于MFC的ActiveX控件开发ysm*******************ActiveX 控件是基于组件对象模型 (COM) 的可重用软件组件,广泛应用于桌面及Web 应用中。
在VC下ActiveX控件的开发可以分为三种,一种是直接用COM的API来开发,这样做显然非常的麻烦,对程序员要求也非常高,因此一般是不予考虑的;一种是基于传统的MFC,采用面向对象的方式将COM的基本功能封装在若干MFC的C++类中,开发者通过继承这些类得到COM支持功能。
MFC为广大VC程序员所熟悉,易于上手学习,但缺点是MFC封装的东西比较多,因此用MFC开发出来的控件相对会比较大,因此比较适于开发桌面ActivexX控件,尤其是有GUI界面的控件。
第三种就是基于ATL的,ATL可以说是专门面向COM开发的一套框架,使用了C++的模板技术,在运行时不需要依赖于类似MFC程序所需要的庞大的代码模块,更适合于Web应用开发。
本文介绍的是采用第二种方式,即应用MFC进行桌面可视控件开发的方法步骤,开发环境则是基于VC2005。
1.创建控件项目打开VC2005后,我们要先创建一个项目,在新建项目页的左侧选择Visual C++-MFC,在右侧选择MFC ActiveX控件,填上解决方案和项目名称,比如在这里我的项目名称是activexdemo1,解决方案名称是activexdemo。
然后进入控件向导页,在向导的第二页有个运行时许可证,选中这个的话会在生成控件的同时生成一个许可证文件,其他用户在使用这个控件的时候必须同时附有这个许可证,在此我们保持默认状态,不选。
下一页是关于项目中各部分的命名问题,可以根据需要自定义,这里就按默认的情况不做修改了。
下一页是选择控件基于哪种控件的扩展以及控件的一些基本特性。
如果新建的控件是基于某种特定控件的话,就在创建的控件基于下选择所要继承的控件名,否则就保持none。
基于OpenGL的ActiveX控件的实现
收稿日期:2004-05-17.第一作者简介:杨日容(1979.10~),女,在读硕士研究生.主要研究方向:控制理论及控制工程.E -mail :yangrirong @基于Open G L 的Active X 控件的实现杨日容,杨承志,杨晓洪(昆明理工大学信息工程与自动化学院,云南昆明 650051)摘要:ActiveX 控件是当前开发各种应用程序的一项重要技术,是一种能与其它程序交互通信的程序体系结构.Open G L 则是一种功能强大的三维图形开发工具,利用Open G L 可以生成真彩的三维动态场景.文章在介绍Open G L 及ActiveX 控件技术的基础上详细介绍了在Visual C ++6.0的环境下开发基于Open G L 的三维动画的方法,并把它封装为ActiveX 控件,最后把该控件应用到常用的演示文稿制作软件Powerpoint2000中,实现了在幻灯片中三维动画的显示与控制.关键词:Visual C ++;Open GL ;ActiveX 控件中图分类号:TP391172文献标识码:A 文章编号:1007-855X (2005)01-0045-03An Active X Control B ased on Open G LY ANG Ri 2rong ,Y ANG Cheng 2zhi ,Y ANG X iao 2hong(Faculty of Information Engineering and Automation ,Kunming University of Science and T echnology ,Kunming 650051,China )Abstract :ActiveX cont rol is t he most important technology in developing all kinds of application proce 2dures ,and it is t he f ramework of t he procedure to communicate wit h ot her procedures.Open GL is a powerf ul t hree -dimension cartoon developing tool.The overview of Open GL and ActiveX cont rol is first int roduced ,and t hen t he met hod of developing an ActiveX cont rol based on Open GL wit h Visual C ++6.0is p resented.Finally t he ActiveX cont rol is applied to t he slide software Powerpoint2000,and t he display and cont rol of t hree -dimension cartoon in t he slide are achieved.K ey words :Visual C ++;Open GL ;ActiveX cont rol0引言Open GL 是S GI 公司开发的三维图形库,它提供几何建模、坐标变换、颜色模式设置、光照和材质设置、纹理映射、实时动画、交互等功能,用户可以方便地利用这个图形库创建具有真实效果的三维模型.Open GL 的最大特点是独立于硬件设备、窗口系统和操作系统,用它编写的软件可以方便地在各种操作系统间移植.目前,包括Microsoft 公司、IBM 公司、SUN 等公司都采用了Open GL 图形标准.ActiveX 技术的理论规范为COM (组件对象模型),其前身是OL E 技术.ActiveX 技术中最常用的三种技术是ActiveX 文档、ActiveX 控件、ActiveX 脚本.其中ActiveX 控件是ActiveX 技术中重要的一项,它作为一种标准的用户接口元素,能够增强应用程序之间的通信能力.实际上ActiveX 控件是一个软件组件,可以把它插入到许多不同的程序中,并把它作为程序自身的一部分来使用.文中介绍了使用Visual C ++中的M FC 开发的一个基于Open GL 的ActiveX 控件的方法,并把该ActiveX 控件应用到Powerpoint2000中.1Active X 控件的创建由于ActiveX 的开发不依赖于语言,所以当前许多流行的编程语言如J ava ,Visual Basic ,Visual 第30卷第1期2005年2月 昆明理工大学学报(理工版)Journal of Kunming U niversity of Science and Technology (Science and Technology )Vol.30 No 11 Feb.2005C ++都支持ActiveX 控件的开发.常用的ActiveX 控件开发方法有M FC ,A TL ,BaseCt rl Framework 等.这里采用的开发工具是Windows 操作系统中广泛使用的应用程序框架M FC.1.1建立Active X 控件的框架首先利用VC ++6.0中的MFC ActiveX C ontrolWizard 建立控件的基本框架,该控件名为Aa.在设置项目的高级选项中把Loads properties asynchronously 选中,即采用异步方式加载控件,以提高系统的性能.1.2加入与Open G L 相关的静态库和头文件由于Open GL 仅仅只是一个图形函数库,因此必须在项目中加入与Open GL 相关的静态库和头文件,建立应用程序和Open GL 的联系.Open GL 静态库包括opengl32.lib ,glu32.lib ,glaux.lib ,添加Open GL 静态库的方法是打开菜单工程\设置,在弹出的对话框中选择Link 项,然后在对象\模块库中加入opengl32.lib ,glu32.lib ,glaux.lib ,这样就可以访问Open GL 函数了.加入头文件的方法打开St dAf x.h ,在文件尾部添加入头文件gl/glu.h ,gl/gl.h ,gl/glaux.h 以及af xtempl.h ,这样Visual C ++编译器就可以对Open GL 中的函数进行识别并编译.1.3利用Open G L 绘制三维图形Open GL 的最主要工作就是将二维物体和三维物体描绘至帧缓存.这些物体由一系列的描述物体几何性质的顶点或描述图像的像素组成,Open GL 执行一系列的操作把这些数据最终转化成像素数据并在帧缓存中形成最后的结果.利用Open GL 绘制图形的原理如图1所示.利用Open GL 绘制三维图形的基本步骤:(1)设置像素格式,建立着色描述表并把它当前化.只有建立着色描述表并把它当前化,绘制的物体才能显示.像素格式则反映了Open GL 的像素缓存是单缓存还是双缓存、颜色模式、绘制风格等.(2)调用Open GL 函数绘制图形,包括建立三维模型、材质设置、定义观察区域、设置投影模式、建立光照模型、图形平移、旋转等.(3)删除着色描述表和设备描述表,释放资源.Aa 控件用到的主要函数见表1.表1 主要函数表T ab.1 Main f unctions 函数主要作用bSetup PixelFormat ()设置像素格式Init ()着色表的创建及当前化PreCreateWindow ()设定Open G L 风格OnSize ()建立视点、启动透视变换、建立透视体DrawScene ()具体绘制三维图形及动画FirePause ()控制动画的停止FirePlay ()控制动画的转动OnDestroy ()删除着色描述表、设备描述表OnLButtonDown ()鼠标响应计算机动画是指应用程序或工具生成一系列的静态画面,然后通过画面的连续播放来反应对象的运动变化过程.Open GL 是通过双缓存技术来实现动画的.在双缓存模式下,位平面被分成前台位平面和后台位平面.只有前台位平面被显示,当完整的画面在后台视频缓存中画出以后,就调用SwapBuffers ()函数使其成为可见视频缓存.这样反复循环,视频图像以人眼察觉不到的时间间隔交替出现,从而实现画面的连续性.所以在绘制三维图形的DrawScene ()函数中应该包括实现前后缓存切换的函数SwapBuffers (wgl Get CurrentDC ()).1.4人机交互的实现该控件希望通过鼠标来控制盒子转动、停止,以实现人机交互,可以通过鼠标响应事件来实现.打开菜单中的建立类向导选择Automation 标签添加属性play ,其对应的变量名为m-play ,该属性用来记录鼠标的动作.在Do Prop Exchanged ()函数中对该属性进行初始化:PX-Bool (p PX ,“play ”,m-play ,t rue );接着要为Aa 控件添加play 事件和pause 事件,这部分工作可以利用建立类向导来完成.当执行play 事件时可以使停止的盒子转动,执行pause 事件时可以使盒子停止转动,在其对应的函数中进行编辑:64昆明理工大学学报(理工版) 第30卷void FirePlay () {Set Timer (1,45,N ULL ); m-play =false ; }void FirePause () {Kill Timer (1); m-play =t rue ; }利用类向导生成消息处理函数OnLButtonDown ()以响应鼠标左键的动作,编辑如下:void CAaCt rl ::OnLButtonDown (U IN T n Flags ,CPoint point ){ if (m-play ) FirePlay (); else FirePause (); COleCont rol ::OnLButtonDown (n Flags ,point );}当m_play 为真时调用FirePlay ()函数,触发play 事件,当m-play 为假时则调用FirePause ()函数,触发pause 事件.这样就基本完成了三维动画的设计,编译后可以利用Visual C ++中的ActiveX Control T est Container 对该控件进行检验,这时应该显示一个正在转动的盒子,如图2所示.2在Po w erpoint2000中的应用Powerpoint2000是office 软件中的一部分,主要用于制作演示文稿(即幻灯片).把基于Open GL 的控件应用到Powerpoint2000中可以增强其显示和交互功能.在Power 2point2000控件工具箱中点击其它控件并选中已经注册的Aa Cont rol ,在幻灯片中拖动鼠标确定控件的位置和大小,并设置其属性.要使控件处于激活状态,还必须利用office 套件共享的公用宏编程语言VBA(Visual Basic for Application )编写自定义控件的代码,其代码如下:Private Sub Aa1-ReadyStateChange ()Aa1.Visible =TrueEnd Sub在放映幻灯片时,ActiveX 控件将自动加载,这样就可以在幻灯片中显示三维动画,并可以通过鼠标直接在幻灯片中控制盒子的转动和停止,如图3所示.3结束语文章利用Visual C ++中的MFC 创建了一个基于Open G L 的三维动画ActiveX 控件,并把该ActiveX 控件应用到Powerpoint2000中,在幻灯片中实现了三维动画的显示和控制.基于Open G L 的ActiveX 控件具有易开发、移植性好、三维动画显示等特点,在课件制作、产品演示、游戏、网页中将会得到越来越广泛的应用.参考文献:[1]向世明.Open G L 编程与实例[M ].北京:电子工业出版社,1999.172~179.[2]叶琳.演示文稿结合V R 技术在设备展示中的应用[J ].机械工程师,2002,(1):60~63.[3]叶钦媚,黎绍发,梁宇涛.用MFC 实现基于OpenG L 的三维图形ActiveX 控件[J ].机电工程技术,2003,32(3):38~40.[4]三味创作室.Visual C ++6.0应用与提高[M ].北京:科学出版社,1999.392~446.74第1期 杨日容,杨承志,杨晓洪:基于Open G L 的ActiveX 控件的实现。
使用MFC开发ActiveX控件
使用MFC开发ActiveX控件MFC(Microsoft Foundation Classes)是一套用于开发Windows应用程序的C++类库,它提供了一组封装了Windows API的类和函数,可以方便地开发Windows桌面应用程序。
ActiveX(ocx)控件是一种可重用的组件,可以嵌入到其他应用程序中使用,可以在网页上嵌入,也可以在Visual Studio等开发环境中使用。
下面将介绍如何使用MFC开发ActiveX控件。
然后,根据自己的需求,在OnDraw函数中绘制控件的外观。
可以使用GDI+函数绘制各种形状、文字、图像等。
可以通过设置控件属性,比如颜色、大小、透明度等来改变控件的外观。
接下来,处理控件的消息和事件。
通过重写控件类的成员函数,比如OnLButtonDown、OnKeyDown等,可以处理鼠标和键盘的输入事件。
可以在函数中编写相应的逻辑代码,比如响应鼠标点击事件时弹出一个对话框。
在控件类中,可以添加成员变量和成员函数,用于保存控件的状态和实现控件的功能。
可以在控件的Load函数中初始化控件,可以在DoPropExchange函数中保存控件的属性,可以在Serialize函数中保存控件的状态。
最后,编译项目,生成ActiveX控件的.dll文件。
可以在同一解决方案的其他项目中引用这个控件,通过拖拽控件到窗口上的方式将其嵌入到应用程序中使用。
总结起来,使用MFC开发ActiveX控件主要有以下几个步骤:创建MFC应用程序项目,设计控件的外观,处理控件的消息和事件,实现控件的功能,编译项目,生成ActiveX控件的.dll文件。
通过这些步骤,可以方便地开发自己的ActiveX控件,并在其他应用程序中使用。
用MFC实现基于OpenGL的三维图形ActiveX控件
用MFC实现基于OpenGL的三维图形ActiveX控件
作者:叶钦媚, 黎绍发, 梁宇涛
作者单位:华南理工大学电教中心计算机科学与工程学院,广东,广州,510641
刊名:
机电工程技术
英文刊名:MECHANICAL & ELECTRICAL ENGINEERING TECHNOLOGY
年,卷(期):2003,32(3)
被引用次数:3次
1.胡伟;王弘如何在VC++中用MFC进行OpenGL编程[期刊论文]-计算机应用 2001(08)
2.赵国庆;刘家彬用MFC开发ActiveX控件以激活Web页面[期刊论文]-计算机应用 2001(09)
3.费广正;乔林Visual C++6.0高级编程技术-OpenGL篇
1.梁文娟.王惠南三维动态仿真技术在网络中的应用[期刊论文]-仪器仪表用户 2005(3)
2.杨日容.杨承志.杨晓洪基于OpenGL的ActiveX控件的实现[期刊论文]-昆明理工大学学报(理工版) 2005(1)
3.冯喆分布交互视景实时运行支撑体系结构研究[学位论文]硕士 2005
本文链接:/Periodical_jxkf200303011.aspx。
基于OpenGL的三维图形ActiveX控件开发及其应用研究
基于OpenGL 的三维图形ActiveX 控件开发及其应用研究张 琦 孙 伟摘要 基于OpenGL 的三维图形ActiveX 控件的开发方法和应用实例,开发出的三维图形控件在数控机床、加工中心等现代制造设备的远程故障诊断系统中得到了较好的应用,并可广泛地应用于3D-CAD 软件开发及产品远程发布等其他方面。
关键词:OpenGL 三维图形 ActiveX 控件 远程故障诊断中图分类号:TP391 文献标识码:A 文章编号:1671—3133(2005)07—0086—04Development and application research of 3D graphics ActiveX control based on OpenGLZhang Oi ,Sun WeiAbstract Researches the deveIopment method and appIications of 3D graphics ActiveX controI based on OpenGL.The deveIoped 3D graphics ActiveX controIs have been weII used in the remote diagnosis system ,and it may aIso be used in the deveIopment of 3D -CAD software ,and remote teaching ,remote product reIease and many other aspects.Key words :OpenGL 3D graphics ActiveX controls Remote diagnosisActiveX 是以微软COM 模型为理论基础建立起来的技术,它的前身是微软的OLE 技术。
ActiveX 控件是ActiveX 技术中最基本和最重要的成员之一,是一种可以插入到网页或其他应用程序中进行重用的软件部件。
《制作ActiveX控》课件
根据功能需求,设计控件的布局和外观,可以使用图 形设计软件或代码实现。
创建属性编辑器
为了方便用户设置控件属性,需要创建一个属性编辑 器,用户可以通过它来设置控件的各项属性。
编写控件代码
01
编写事件处理程序
根据控件的功能需求,编写相应 的事件处理程序,例如按钮的点 击事件、文本框的输入事件等。
设计控件界面
在Visual Basic的“设计”视图中,使用工具箱中的控 件工具,如按钮、文本框等,在控件界面上拖拽添加控 件。
可以通过属性窗口设置控件的属性,如名称、大小、位 置、字体等。
编写控件代码
01
在Visual Basic的“代码”视 图中,编写控件的事件处理程 序。例如,当按钮被点击时, 执行相应的操作。
02
03
实现控件逻辑
封装控件类
根据控件的功能需求,编写实现 控件逻辑的代码,例如数据验证 、数据处理等。
将编写的代码封装为一个 ActiveX控件类,以便在其他应 用程序中使用。
编译和测试控件
编译控件
使用编译器将编写的代码编译成ActiveX控件。
测试控件
在多种操作系统和应用程序中测试控件的功能 和兼容性,确保控件能够正常工作。
跨平台性
ActiveX控件可以在不同的操作系 统和开发环境中使用,提高了软 件的兼容性和可移植性。
易于集成
ActiveX控件可以与其他ActiveX 控件或COM组件进行集成,实现 更复杂的软件功能。
02
制作ActiveX控件的步骤
设计控件界面
确定控件功能
首先需要明确控件需要实现的功能,以便设计出符合 需求的界面。
制作ActiveX控件
VC环境下基于OPenGLl的程序步骤
VC 环境下基于OpenGL 的编程步骤下面介绍在VC 环境中建立基于OpenGL 标准的应用程序框架的具体方法与步骤:1. 创建项目文件:选择File /New 菜单选项,建立一个名为MyTest 项目文件,MyTest 基于单文档(SDI),View 类基于Cview。
2. 选择Build /Setting 菜单选项,在Link 栏的Lib 输入域中添加openg132.lib、glu32.lib,若需使用OpenGL 的辅助库函数,则还需添加glut32.lib。
3. 选择View /ClassWizard 菜单选项,打开MFC 对话框,在ClassName 栏中选择CMyTestView 类,进行以下操作:1) 选择WM_CREATE 消息,鼠标单击EditCode,将OpenGL 初始化代码添加到OnCreate() 函数中:/*定义像素存储格式*/PIXELFORMATDESCRIPTOR pfd={sizeof(PIXELFORMATDESCRIPTOR),1,PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL,PFD_TYPE_RGBA,24,0,0,0,0,0,0,0,0,0,0,0,0,032,0,0,PFD_MAIN_PLANE,0,0,0,0};CCLient dc(this);int pixelFormat=ChoosePixelFormat(dc.m_hDC,&pfd);BOOL success=SetPixelFormat(dc.m_hDC,pixelFormat,&pfd);m_hRC=wglCreateContext(dc.m_hDC);(可以自己定义一个初始化函数(init()),将上述代码进行封装)2) 选择WM_DESTORY消息,在OnDestory()中添加以下代码:wglDeleteContext(m_hRC);3) 在MyTestView.cpp中,将以下代码添加到PreCreateWindows()函数中:cs.style|=WS_CLIPCHILDREN|WS_CLIPSIBLINGS;OpenGL只对WS_CLIPCHILDREN|WS_CLIPSIBLINGS类型窗口有效;4) 在MyTestView.cpp中,将以下代码添加到OnDraw()函数中:wglMakeCurrent(pDC->m_hDC,m_hRC);DrawScene(); //用户自定义函数,用于绘制三维场景;wglMakeCurrent(pDC->m_hDC,NULL);5) 在MyTestView.cpp中,添加成员函数DrawScene():void CMyTestView::DrawScene(){/*绘制三维场景*/}6) 选择WM_SIZE 消息,鼠标单击EditCode,在OnSize()中添加观察变换函数。
面向ActiveX控件的动态链接库开发研究
主窗 口菜单包括三部分 : 显示 日 , 期 显示时钟 , 控件说 明。显示 日 期 中主要是显示 日历 . 看时 间并添加提醒 显示时钟主要是实现模 查 拟现实 中转动时钟和数字走 动时钟 的有机结合。 主窗 口开发 流程具体 如下 。 2 在 Vsa S d 0 0 . 1 i l t i 2 1 环境下创建一个 “ # idw 窗体控件库 ” u u o c w no s 项 目, 默认类继 承 Ss m Wi o s 0 .s C n o. 添加注册 。 让 y e . n w . ms e ot 1并 t d F U r r 然后可以像开发普通 c #Wi o s n w 控件一样设计这个控件库 .并编译 d 生成 D L文件 . D L L 该 L 文件此时没有任何 功能 2 此时开发 出来的动态链接库不能直接用 于页面 . 能会被用户 . 2 可
【 关键词 】 cvX控件 ; A te i 动态链接库 ; 开发
0 引 言
随着 lt n t n re 的飞速发展 . 的 cs客户端/ 务器) e 传统 / ( 服 应用程序遇 到了 We 应用程 序的挑 战。 b 在电子商务盛行 的时代 . 不仅仅是各种数 据库 管理系统纷纷从原来 的 CS / 模式改为 BSBo s Svr /(r e ee @模式 . wd ) 例 如人事管理 、 财务管理 等 . 同时也对改变 了很 多其他领域 的软 件运 行模式 , 例如安防监控系统 、 视频会议等 。 因为 We 程序有着一些 CS b / 传统模式无法 比拟的优越 性, b We 程序开发快捷容 易 . 护和使 用简 维 单 。 良好的可扩展性和可移植性 。 有着 但是 We 程序并不能取代传统 b 的应 用程序 , 无论是 J V 、 # A A c 还是 P P等 We 开发语 言 , H b 都还无 法 I E的安全设置禁用 , 而开发者又无法直接管理用户的 I E设置 , 所以在 真正 实现传 统语 言的很 多功能。所以如何将 we 程序 的功 能更好 的 b 控件的开发 中. 需要添加一个 t b c a t 接 口. Oj t fy eS e 并为控件所继 承 . 如 进行 扩充 . 一个需要研 究的课题 , 是 本文引入 A t e c vX控件 开发技 术 i 下程序段所示 以增强 We b的功 能 u igS se Ru t . tmp evcs sn ytm. ni I e S rie : me n A te c vX是一个软件组件 . i 是某一程序 内 自 包含 的部分 独立 的组 u i g S s e S c rt : sn y t m. e u i y 件. 也是一种标准。 使用这个标 准 . 以使不 同语言开发的软件组 件在 可 n me p c t e a s a e Ac i X v 网络环境 中相互操作 它可以插入到 不同的程序中作为程序的一部分 f 来使用 . 具有很强的独立性和组合性 。 【ud“7 9 1 9 7 6 — E 6 B 5 一 6 A 5 8 C F ) G i(4 16 A — 7 3 4 C 一 O4 A O B 3 9 4 ”] 严格意义上说 .# c 不能生成纯正 的 O X控件 . M c s t i a C 在 i o fV s l r o u pbi pra ls an UeCot ,O jcSft u l at c sm i: sr nmlI beta y c i a l e S do e 中新建项 目时 , t i Ut u . 找不到专 门的 A t e c vX项 目新建项 . i 最多 只 { 能新建类库和窗体控件库 . 到一个 D L 得 L 文件而非 O X控件 . 法用 C 无 #einIbeta t 员 rg ojcSf y成 o e r s 3 来注册该 D L文件 , ev2 gr L 但是 c #能够开发 C M组件 . c vX控 O A te i p bi vi eltr eeay pin(ytm. t2rd u l odG t e acSfO t s s I 3 i, c n f o S e n i 件本质上讲跟 C M是一类技术 所以用 c 开发 面向 A t e O # c vX控件 的 i o t S se I t 2 pd u p re Op i n , u y t m. 3 wS p o t d t s u o 动态链接库是可行的 o t ytm. t2p w n be0 t n) u s I 3 d E a l pi s S e n d 0 A te c vX控件在软件开发过程 中起着很重要 的作用 .是个功能强 i { 大 的工具 随着人们对软件需求 的提高 . 软件开发对各 种 A t e e vX控 i p wS p otd t ns ; d u p re Opi =1 o 件 的需求量也在增长 p wEn be Opin = d a ld to s 2;
用MFC开发ActiveX控件详解
前言ActiveX控件是一种实现了一系列特定接口而使其在使用和外观上更象一个控件的COM 组件。
ActiveX控件这种技术涉及到了几乎所有的COM和OLE的技术精华,如可链接对象、统一数据传输、OLE文档、属性页、永久存储以及OLE自动化等。
ActiveX控件作为基本的界面单元,必须拥有自己的属性和方法以适合不同特点的程序和向包容器程序提供功能服务,其属性和方法均由自动化服务的IDispatch接口来支持。
除了属性和方法外,ActiveX控件还具有区别于自动化服务的一种特性--事件。
事件指的是从控件发送给其包容程序的一种通知。
与窗口控件通过发送消息通知其拥有者类似,ActiveX控件是通过触发事件来通知其包容器的。
事件的触发通常是通过控件包容器提供的IDispatch接口来调用自动化对象的方法来实现的。
在设计ActiveX控件时就应当考虑控件可能会发生哪些事件以及包容器程序将会对其中的哪些事件感兴趣并将这些事件包含进来。
与自动化服务不同,ActiveX控件的方法、属性和事件均有自定义(custom)和库存(stock)两种不同的类型。
自定义的方法和属性也就是是普通的自动化方法和属性,自定义事件则是自己选取名字和Dispatch ID的事件。
而所谓的库存方法、属性和事件则是使用了ActiveX控件规定了名字和Dispatch ID的"标准"方法、属性和事件。
ActiveX控件可以使COM组件从外观和使用上能与普通的窗口控件一样,而且还提供了类似于设置Windows标准控件属性的属性页,使其能够在包容器程序的设计阶段对ActiveX控件的属性进行可视化设置。
ActiveX控件提供的这些功能使得对其的使用将是非常方便的。
本文下面即以MFC为工具对ActiveX控件的开发进行介绍。
建立工程框架通过"MFC ActiveX ControlWizard"向导可以非常容易的建立一个MFC ActiveX控件工程框架。
基于OpenGL地图显示ActiveX控件的实现
关键词
矢 量地 图 ;0 p e n G L ;地 图 显示 ;A c t i v e X 控 件
Ab s t r a c t
Wi t h t he d e v e l o p me n t o f e l e c t r o n i c i n f o r ma t i o n t e c h n o l o g y , t h e a p p l i c a t i o n o f g e o g r a p h i c
信息科 技
中 国 科 技 信 息 2 0 1 3 年 第 2 3 期・ c H I N A S C I E N C E A N D T E C H N O L O G Y I N F O R M A T I O N D e c . 2 0 1 3
基于Op e n GL 地 图显 示Ac t i v e X 控件 的实现
Ch a n g Qi n g -l i
E a s t C h i n a Re s e a r c h I n s t i t u t e o f E l e c t r o n i c s En g i n e e r i n g, H e f e i 2 5 0 0 8 8, C h i n &
摘要 随着 电子信 息技 术 的发展 ,地 理 信 息 系统( G i s ) 的应 用越 来越 多,本 文采 用 0 p e n G L 显示标 准格 式m i f 的矢量地 图,并应 用于雷达终端显示 工程 实践 ,和传
统 采 用V c 绘 图 函 数绘 制 矢量 地 图相 比 , 采 用0 p e n G L 绘 制 速 度 更快 ,效 果 更好 。
序 和程序 间相互 支持 , 轻 易达 到程 序拟 合的 目的 。它对 外 部环 境是 开放 的 , 能被 各种 编程环 境使 用 , 所 以任 何支持 Ac t i v e X控 件的软 件平 台都可 以使 用此控 件 。
基于WinCC剪切机三维动画软件设计与实现
基于WinCC剪切机三维动画软件设计与实现刘学;迟秀荣【摘要】主要介绍的是在组态软件WinCC 中实现对工业剪切机剪切过程的三维动态模拟,本软件基于ActiveX插件技术实现与WinCC软件的通信和数据传递,采用MFC框架结合OpenGL三维图形库来实现三维物体的显示控制,采用3D Max软件绘制的剪切机三维建模并导出的通用3D建模文件OBJ。
在OpenGL中调用OBJ文件实现具体的3D的动画显示。
%This paper refers to the realization of 3D-simulation of the industrial process of sheer forming machine based on WinCC. The realization of the software uses ActiveX software framework to communicate and transfer data with WinCC, combines OpenGL and MFC framework to realize the display and control of 3D objects and simulates the manufacturing process by the OBJ files drawn in 3D Max. That functions in OpenGL parse OBJ files provides the main animation of movements.【期刊名称】《齐齐哈尔大学学报(自然科学版)》【年(卷),期】2014(000)001【总页数】5页(P40-44)【关键词】WinCC;三维动画;剪切机;OpenGL【作者】刘学;迟秀荣【作者单位】哈尔滨理工大学计算机科学与技术学院,哈尔滨 150080;中国环境管理干部学院,河北秦皇岛066000【正文语种】中文【中图分类】TP311.52随着工业现代化进程的不断发展,工业组态软件在真实工业现场中的使用也越来越频繁、功能不断完善,已成为工业控制不可缺少的一部分。
计算机应用专业-专业毕业论文参考选题
计算机应用专业-专业毕业论文参考选题福建广播电视大学开放教育计算机应用专业毕业设计参考选题一、毕业设计的选题原则毕业设计可结合科研任务、技术开发项目、信息工程建设的需要及学生单位实际应用的需要进行选题。
建议毕业设计选取以经济领域中的管理信息系统为主要内容;也可以是计算机新技术研究领域.选题的基本原则是:1.必须符合计算机应用专业综合训练的要求.2.在满足综合训练要求的前提下,尽可能选择与本地区、本单位实际需要相结合的课题.3.选题要有利于深化所学的专业知识和拓展所学的知识面.4.课题任务要有一定的设计、工程量,以保证每个学生能有明确的分工和具体的设计任务。
5.课题的设计难度要适中,应使中等程度的学生经过努力能够在规定的时间内完成设计任务。
需要说明的是:这里提供的选题只是参考性的和指导性的,各地可以根据学生的实际情况,适当调整后选用。
如果学生觉得这些选题和自己的研究兴趣、工作实际有较大距离,也可以自行拟订选题,经指导教师审定后再投入撰写.二、毕业设计参考选题1、组建对等网络(WINSOWS 2000 SERVER组网探讨)2、基于OPENGL利用网格结点构造三维曲面的实现技术3、多媒体课件设计FLASH动画制作技巧4、CAI课件的创作与实例5、虚拟现实建模机器流览器的开发6、基于INTERNET的学生学籍管理系统7、基于VC开发平台的ACTIVEX控件的设计与开发8、电子商务信息系统—0A公文管理9、用ASP和MS SQL SERVER实现网上讨论10、基于TCP/IP协议的网络聊天软件的设计与实现11、开发基于MS SEL SERVER 网站的系统支持12、用VB6。
0制作邮件监听器13、高等学校实验室收费管理系统14、基于ASP技术和MS-SQL SERVER的动态网页留言版实现15、VB数据库选题系统16、医院住院管理子系统的设计与实现17、基于Authorware的Cool 3D学习系统的开发18、网上书店电子商务软件平台的研制与应用19、利用DELPHI实现网络监控系统20、基于校园网的教务管理信息系统-访问授权管理子系统概要与编码21、COM与数据库-VC++6。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3 . 3 . 1 M y M F C O p e n G L 控件的设计 主要功能是绘制一个在其表面可贴图 操作立方体图形, 外观形式表示为一个图 形标志, 省去属性的设置, 方法有绘制立方 体, 表面贴图, 显示坐标轴。事件有 OnLButtonDown;OnLButtonUp; O n M o u s e M o v e ; O n R B u t t o n D o w n 。并且通过 菜单选择的形式确定对图形进行操作。 3.3.2 MyMFCOpenGL 控件创建 ( 1 ) 控件工程项目和注册控件 选取 MFC ActiveX ControlWizard,取 项目名称为 M y M F C O p e n G L , 使用默认值 生成一个 M F C 控件项目, 在项目框架生成 的同时为控件提供了 UpdateRegistry()函数 注册控件。 (2)设置 OpenGL 绘图框架 Step1 在 MfcOpenGLWndCtl.h 中添加
if (COleControl::OnCreate (lpCreateStruct) == -1)
return -1; Init(); //OpenGL initialization return 0; } S t e p 5 添加一个 W i n d o w s 消息 WM_DESTROY void CMfcOpenGLWndCtrl:: OnDestroy() { COleControl::OnDestroy(); // TODO: Add your message
( 3 ) 用户界面特征: 具有用户界面, 容器 程序可以根据需要调整控件的位置和大小。
( 4 ) 状态永久性: 在执行生存期保持它 的状态能力。 3.2 ActiveX 控件的创建
使用 MFC 创建基于 OpenGL 的 ActiveX 控件时, 一般可分为三个阶段。( 1 ) 设计阶 段: 主要是用来确定控件的功能, 外观形式 及所提供的接口。( 2 ) 创建阶段: 包括创建控 件项目, 控件注册, 对各个属性的编程实现 等。(3)测试阶段:采用 Visual Studio 自带的 控件测试容器工具进行测试, 确保控件功 能的完整性。 3.3 实例验证
DrawScene( );
4 用 web 作容器,形成的交互式三维图形 Web 页
H T M L 文件由文本和各种标记组成, A c t i v e X 控件对于 IE 在 H T M L 中的标志是 < O B J E C T >, 该标记有几个重要的参数 特性
( 1 ) ID:控件提供一个标识名称,为 H T M L 代码提供一种访问该控件的方式
3 ActiveX控件的创建
3.1 ActiveX 控件 该控件是一种自动化对象, 即实现了
I D i s p a t c h 接口的 C O M 对象。一般具有如 下基本特征:
( 1 ) 属性和方法管理: 利用自动化技术 和属性变化通知实现属性和方法的管理。
( 2 ) 事件机制: 事件是控件在响应外部 作用时由控件触发的通知, 通常是用户进 行的键盘或鼠标操作, 控件利用事件与容 器进行通信, 使得容器程序能够及时感知 用户操作所引起的反应。
(UINT nFlags,CPoint point);响应鼠标操
作控制图形的平移, 旋转, 缩放。添加三个
方法 DrawAxis( );DrawGrid();ShowCoord
( );TextureMap( )分别表示显示相应的图形。
(4)持久性
在虚函数 DoPropExchange( )添加属性
变量的初始化值即可实现。 (5) 添加图形绘制程序。 在 OnDraw( )函数中实现图形的绘制,
{ ……. }; int pixelformat; if ( (pixelformat = ChoosePixelFormat (m_pDC->GetSafeHdc(), &pfd)) == 0 ) { MessageBox(_T ("ChoosePixelFormat failed")); return FALSE; } if (SetPixelFormat(m_pDC-> GetSafeHdc(), pixelformat, &pfd) == FALSE) { MessageBox(_T ("SetPixelFormat failed")); return FALSE; } return TRUE; } S t e p 4 添加一个 W i n d o w s 消息 WM_CREATE int CMfcOpenGLWndCtrl::OnCreate (LPCREATESTRUCT lpCreateStruct) {
科技创新导报 Science and Technology Innovation Herald
31
科技创新导报 2008 NO.24 Science and Techd
handler code here
HGLRC
hrc;
hrc = ::wglGetCurrentContext();
( 4 ) P A R A M : 该标记用于设置控件的初 始属性值, 有两个特性: 属性名称和属性值
5 结语
本文在介绍 OpenGL 及 ActiveX 控件技 术的基础上, 总结了利用 M F C 开发基于 OpenGL 的 ActiveX 控件一般性的方法和步 骤, 通过实例进行了说明, 最后把实例中的 控件嵌入到 W e b 中, 实现了交互式控制三 维图形的 w e b 。
通过 MFC ClassWizard 中 Automation
选项卡可以很方便的给项目添加方法, 属
性和事件。填加事件 O n L B u t t o n D o w n
(UINT nFlags,CPoint point);OnLButtonUp
(UINT nFlags,CPoint point);OnMouseMove
#include<gl/gl.h> #include<gl/glu.h> #pragma comment(lib,"opengl32.lib") #pragma comment(lib,"glu32.lib") Step2 在接口实现类添加一个 OpenGL 的 RC(rendering context)成员变量:HGLRC hrc; Step3 添加一个设置 OpenGL 像素格式 ( 接口实现类的) 成员函数: BOOL CMfcOpenGLWndCtrl:: bSetupPixelFormat() { static PIXELFORMATDESCRIPTOR pfd=
图 1 基于 OpenGL 的图形绘制框架
数) 中使用 O p e n G L 函数绘制图形。 ( 6 ) 响应 W M _ D E S T R O Y 消息, 释放 R C
和DC。 在 V C 环境中, 基于 O p e n G L 的绘图框
架如图 1 所示, 一次典型的步骤包括场景 设置、模型构造、图形渲染。
::wglMakeCurrent(NULL,
NULL);
if (hrc)
::wglDeleteContext(hrc);
if (m_pDC)
delete m_pDC;
}
通过以上五步完成对 O p e n G L 绘图框
架的设置。
( 3 ) 创建方法, 属性, 事件
( 4 ) 响应 W M _ S I Z E , W M _ E R A S E B K G N D 消息,在 OnSize( )函数中建立视点、启动 投影变换并建立视景体, 之后重载 OnEraseBkgnd( )函数,使它返回真值,以消 除重绘画面所引起的闪烁。
(5)在 OnDraw( )函数(或 OnPaint( )函
技 术 创 新
科技创新导报 2008 NO.24
Science and Technology Innovation Herald
开发基于 OpenGL 的 ActiveX 控件的方法研究
丁红胜 ( 北方民族大学计算机科学与工程学院 银川 7 5 0 0 2 1 )
摘 要:针对开发基于 OpenGL 的 ActiveX 控件的问题,在介绍 OpenGL 程序设计流程及 ActiveX 控件技术的基础上,归纳了采用 MFC 开发 ActiveX 控件的一般性方法和步骤,并通过实例说明了该方法的使用,最后将该控件嵌入 Web 中,实现了交互式三维图形的 web。 关键词:MFC OpenGL ActiveX 控件 Web 中图分类号:TP391172 文献标识码:A 文章编号:1674-098X(2008)08(c)-0031-02
参考文献
[1] 王霞敏.tiveX技术的研究与应用[J].电脑 应用,2003(2).
[2] 乔林,费广正.penGL 程序设计[M].华大 学出版社,2000,4.
单独设置一个图函数 DrawScence()绘制图 形, 另外添加函数两个函数 w i n 2 o b j ( ) ; obj2win( );完成屏幕坐标到 OpenGL 坐标 的互相转换功能。在 O n d r a w ( ) 函数中通 过调用 DrawScene( )函数完成图形绘制。
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// 清除深度 缓冲区, 颜色缓冲区
1 引言
A c t i v e X 是用于网络的对象链接与嵌 入技术, 可以看成是实现了标准 O L E 接口 的 C O M 对象。此控件作为一个独立的对 象, 可以激起和响应事件, 处理消息, 并有 多线程能力, 支持容器之间的双向通信和 消息传递。它对外部环境是开放的, 能被 各种编程环境使用, 所以任何支持 A c t i v e X 控件的软件平台都可以使用此控件。 O p e n G L 是三维图形库, 提供几何建模、光 照和材质设置、纹理映射、交互等功能, 用 户可以方便地利用这个图形库创建具有真 实效果的三维模型。W E B 作为一种支持 A c t i v e X 的容器, 按照 C O M 规范的描述, 可 以方便地将其插入到 w e b 中, 实现交互式 三维图形的动态 w e b 显示效果。