MFC中运行OSG
今天学了一下在mfc单文档下运行osg.
在osg源码中examples目录有个osgviewerMFC项目,
包括sdi和mdi的示例代码。
1.新建sdi单文档mfc项目:mfcOsg。
配置osg参考:
2.把examples目录中的MFC_OSG.h和MFC_OSG.cpp复制到项目目录中。
字符集修改为:使用多字节字符集
这时候编译通过。
3.在stdafx.h中添加#include <process.h>
在view头文件中引入#include "MFC_OSG.h"
同时加两个public变量。
cOSG *m_OSG;
HANDLE m_ThreadHandle;
4.响应OnCreate消息,重写OnInitialUpdate函数。
int CmfcOsgView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: 在此添加您专用的创建代码
m_OSG = new cOSG(m_hWnd);
return 0;
}
void CmfcOsgView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// TODO: 在此添加专用代码和/或调用基类
m_OSG->InitOSG("cessna.osg");
m_ThreadHandle = (HANDLE)_beginthread(&cOSG::Render,0,m_OSG);
}
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: 在此添加您专用的创建代码
m_OSG = new cOSG(m_hWnd);
return 0;
}
void CmfcOsgView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// TODO: 在此添加专用代码和/或调用基类
m_OSG->InitOSG("cessna.osg");
m_ThreadHandle = (HANDLE)_beginthread(&cOSG::Render,0,m_OSG);
}
运行结果:
我这个博客废弃不用了,今天想寻找外链的时候,突然想到这个博客权重很高。
有需要免费外链的,留言即可,我准备把这个博客变成免费的友情链接站点。