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是一個開放的集成平臺,為開發(fā)人員、用戶和Web生產(chǎn)商提供了一個快速而簡便的在Internet 和Intranet創(chuàng)建程序集成和內(nèi)容的方法。使用AcitveX可以輕松方便地在Web頁面中插入多媒體效果、交互式對象及復雜程序。編寫的ActiveX控件可以在不同的程序上運行,如Internet Explorer, Visual Basic, MFC- and ATL-based containters等等。
本文嘗試使用Qt的ActiveQt模塊將OpenSceneGraph封裝成ActiveX控件,并在Internet Explorer中顯示出三維模型。
2.ActiveQt
習慣了用Qt封裝的對象,用著舒服。Qt的Windows商業(yè)版本和開源版本都提供了ActiveQt框架,使用這個組件我們可以在Qt中使用ActiveX控件,并且也可以開發(fā)基于Qt的ActiveX控件。ActiveQt包含了兩個組件QAxContainter和QAxServer:
v QAxContainer允許我們使用COM對象,像使用Excel的COM對象,就可以對Excel進行讀寫了;
v QAxServer可以將我們寫的Qt控件導出為COM對象或者ActiveX控件。
使用ActiveQt來編寫ActiveX控件還是要簡單很多的。
3.OpenSceneGraph
OpenSceneGraph是對OpenGL面向?qū)ο蟮姆庋b,使用OpenSceneGraph可以方便地對三維場景進行處理,可以用于三維可視化,仿真等領域。因為也是純C++開發(fā),所以產(chǎn)生了將OpenSceneGraph編寫成ActiveX控件的想法,這樣就可以在Web上來操作三維場景了。
4.Example
首先在Visual Studio中創(chuàng)建一個ActiveQt Server項目,如下圖所示: