一个简单的osg控件开发例子
作者:boqing
经常需要在对话框上添加osg的浏览功能,一开始是仿照osgviewerMFC的例子去写,可是每次在对话框上添加此功能的时候都要重复复制很多处代码,且位置和大小控制也不是很方便。因此写了个简单的OSG Active控件解决此问题。
开发工具:vc2005
OSG版本:osg2.2
具体开发步骤:
一 建立Active工程
项目类型选择:MFC,模板选择MFC ActiveX Control
下一步的向导中保持默认,点完成
二 配置viewer
定义viewer为成员函数
osg::ref_ptr<osgViewer::Viewer>viewer;
构造函数中初始化
viewer=new osgViewer::Viewer;
为了使得其能正常显示在拖动的空间中,大小和位置与拖出区域的大小和位置一致。编写configViewer函数
#include <osgViewer/api/win32/GraphicsWindowWin32>
void COSGControlCtrl::configViewer(HWND m_hWnd)
{
RECT rect;
//得到控件的大小
::GetWindowRect(m_hWnd, &rect);