Abstract. Qt’s ActiveX and COM support allows Qt for Windows developers to access and use ActiveX controls and COM objects provided by any ActiveX server in their Qt applications. Make their Qt application available as COM servers, with any number of Qt objects and widgets as COM objects and ActiveX controls. Make OpenSceneGraph to ActiveX controls then you can use it in other place, like IE.
Key Words. OpenSceneGraph, ActiveX, COM, ActiveQt
1.Introduction
ActiveX是一個(gè)開(kāi)放的集成平臺(tái),為開(kāi)發(fā)人員、用戶和Web生產(chǎn)商提供了一個(gè)快速而簡(jiǎn)便的在Internet 和Intranet創(chuàng)建程序集成和內(nèi)容的方法。使用AcitveX可以輕松方便地在Web頁(yè)面中插入多媒體效果、交互式對(duì)象及復(fù)雜程序。編寫(xiě)的ActiveX控件可以在不同的程序上運(yùn)行,如Internet Explorer, Visual Basic, MFC- and ATL-based containters等等。
本文嘗試使用Qt的ActiveQt模塊將OpenSceneGraph封裝成ActiveX控件,并在Internet Explorer中顯示出三維模型。
2.ActiveQt
習(xí)慣了用Qt封裝的對(duì)象,用著舒服。Qt的Windows商業(yè)版本和開(kāi)源版本都提供了ActiveQt框架,使用這個(gè)組件我們可以在Qt中使用ActiveX控件,并且也可以開(kāi)發(fā)基于Qt的ActiveX控件。ActiveQt包含了兩個(gè)組件QAxContainter和QAxServer:
v QAxContainer允許我們使用COM對(duì)象,像使用Excel的COM對(duì)象,就可以對(duì)Excel進(jìn)行讀寫(xiě)了;
v QAxServer可以將我們寫(xiě)的Qt控件導(dǎo)出為COM對(duì)象或者ActiveX控件。
使用ActiveQt來(lái)編寫(xiě)ActiveX控件還是要簡(jiǎn)單很多的。
3.OpenSceneGraph
OpenSceneGraph是對(duì)OpenGL面向?qū)ο蟮姆庋b,使用OpenSceneGraph可以方便地對(duì)三維場(chǎng)景進(jìn)行處理,可以用于三維可視化,仿真等領(lǐng)域。因?yàn)橐彩羌僀++開(kāi)發(fā),所以產(chǎn)生了將OpenSceneGraph編寫(xiě)成ActiveX控件的想法,這樣就可以在Web上來(lái)操作三維場(chǎng)景了。
4.Example
首先在Visual Studio中創(chuàng)建一個(gè)ActiveQt Server項(xiàng)目,如下圖所示: