OSG+MFC对话框程序
OSG的sample里面有OSG+MFC+MDI的例子。
网上有说OSG+MFCSDI的例子,如http://blog.csdn.net/xuguangsoft/article/details/8164104
这里我说一下怎么在MFC对话框上结合使用OSG。
首先,对话框要保持干净,像酱紫:

然后,在你里osg sample里面找到那个OSG+MFC+MDI的例子(osgviewerMFC),在里面找两个文件:MFC_OSG.h 和 MFC_OSG.cpp。
把这两个文件拷到你自己的对话框项目的源代码目录下,然后在IDE里面添加到项目中。
接下来:
- 在你的 stdafx.h 中添加上 #include<process.h>
- 在你的工程dlg的头文件,比如yourdlg.h中添加 #include "MFC_OSG.h"
- 这个时候你的程序是编译通不过的,会出现好多链接error,是因为没有加OSG库。添加以下的库文件
OpenThreadsd.lib
osgd.lib
osgDBd.lib
osgFXd.lib
osgManipulatord.lib
osgParticled.lib
osgShadowd.lib
osgSimd.lib
osgTerraind.lib
osgTextd.lib
osgViewerd.lib
osgUtild.lib
osgGAd.libOpenThreads.lib
osg.lib
osgDB.lib
osgFX.lib
osgManipulator.lib
osgParticle.lib
osgShadow.lib
osgSim.lib
osgTerrain.lib
osgText.lib
osgViewer.lib
osgUtil.lib
osgGA.lib这个时候再把你的程序改为多字节编码(如果你使用的是unicode编码的话),然后就可以编译运行了。当然,是没什么变化的。
- 在yourdlg.h的类的定义中,添加两个protected属性的变量
cOSG* mOSG;
HANDLE mThreadHandle; - 在类向导中为yourdlg类添加消息响应WM_CREATE的函数OnCreate。
int CyourDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialogEx::OnCreate(lpCreateStruct) == -)
return -; // TODO: 在此添加您专用的创建代码
mOSG = new cOSG(m_hWnd);
return ;
} - 在OnInitialDlg()中添加以下代码,注意这一点与SDI程序不同,SDI程序是要overrideOnInitialUpdate().
mOSG->InitOSG("cow.osg");
mThreadHandle = (HANDLE)_beginthread(&cOSG::Render, , mOSG); - 我不是代码啊、快放我出去呜呜 w_w ●﹏●刚才被困到5后面的代码区了,幸好窝懂点HTML,改了HTML才跑出来。
- 这个时候程序就可以编译运行了,你会看到酱紫的:

- 看到这个运行结果很开心吧,但是呢,为了遵循《程序员的自我修养》,你看看第5步里面用了个new,所以还得delete一下。在类向导里面为yourdlg类添加OnDestory函数
void CyourDlg::OnDestroy()
{
if(mOSG != NULL)
delete mOSG; WaitForSingleObject(mThreadHandle, ); CDialogEx::OnDestroy(); // TODO: 在此处添加消息处理程序代码
}
OSG+MFC对话框程序的更多相关文章
- MFC对话框程序 屏蔽ESC和ENTER键关闭对话框的方法
http://blog.csdn.net/xgx198831/article/details/6713651 MFC对话框程序 屏蔽ESC和ENTER键关闭对话框的方法 或许还有其它更好的办法,但下 ...
- VC++MFC对话框程序中给对话添加背景图片
VC对话框怎么显示背景图片呢.在MFC中实现背景图片,不像C#应用程序那么简单.今天就和朋友们说说如何在VC界面中设置背景图片 ^_^ 工具/原料 Visual C++ 2010 方法一:用Pic ...
- VS2010 MFC对话框程序用CButtonST给按钮添加图标
也许是VS版本的关系,CButtonST中的BCMenu两个文件是无法编译通过的. 1.拷贝下载的CButtonST(我下载的v3.9)中的BtnST.h和BtnST.cpp文件到自己项目目录下. ...
- 添加RichEdit控件后导致MFC对话框程序无法运行的解决方法
新建一个基于对话框的MFC程序,对话框上添加了RichEdit控件,编译成功后无法运行起来,Debug版本与Release版本均不行! Windbg分析结果: WARNING: Stack unwin ...
- mfc 对话框程序 托盘实现
1 在头文件里面定义 消息 #define WM_SHOWTASK WM_USER+10 在主窗口类里面定义 一个变量 两个函数 a 变量 托盘结构体的变量 NOTIFYICONDATA m_nid; ...
- MFC对话框程序EDIT类控件的自动换行,垂直滚动条自动下移
1.新建一个Edit Control,将其Multiline属性设置为True,Auto HScroll属性设置False,这样就可以实现每一行填满后自动换行了. 2.再将Vetrical Scr ...
- 【MFC - 菜单】在对话框程序中添加菜单栏(CMenu)(转)
原文转自 http://lishiqiang1988.blog.163.com/blog/static/41147912201382104631547/ VS2010的MFC对话框程序中添加菜单栏的过 ...
- 在c++MFC下用PCL显示操作点云文件 MFC对话框显示操作PCL点云
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/13115873.html 第一步 下载PCL库 我的版本是1.8.1的 你都要MFC下跑PCL ...
- MFC模态对话框程序不响应OnIdle
从代码分析原因吧: OnIdle函数在MFC的CWinThread::Run函数中被调用,如下 // main running routine until thread exits int CWinT ...
随机推荐
- App中嵌入网页浏览器
TOWebViewController 插件 NSURL *url =[NSURL URLWithString:@"http://192.168.1.134:8180/Home/IndexP ...
- Bootstrap学习笔记上(带源码)
阅读目录 排版 表单 网格系统 菜单.按钮 做好笔记方便日后查阅o(╯□╰)o bootstrap简介: ☑ 简单灵活可用于架构流行的用户界面和交互接口的html.css.javascript工具集 ...
- 1.解剖Linq to object
LINQ想必大家都不陌生了,它的出现使得我们的代码变得更短.更优雅了.至于LINQ是什么,Linq to object这类的扩展方法到底做了些什么.我们使用的EF是如何实现的(如何解析Expressi ...
- 几种ESB(企业服务总线)介绍
ESB(Enterprise Service Bus,即企业服务总线)是传统中间件技术与XML.Web服务等技术结合的产物.ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素. 企业服务 ...
- selenium python (五)打印信息及设置等待时间
#!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip' #一般情况下我们要验证打开的页面是否正确,可通过网页的Title和Cur ...
- SSD Cloud Hosting–Linode-Mysql数据库的安装与配置
接着上一篇的话题:SSD Cloud Hosting - Linode的配置和部署,搭建Java环境 8.Mysql数据库的安装与配置 安装 检查yum里边有没有mysql: yum list|gre ...
- python中类的总结
1. 类中的方法 在类里主要有三种方法: a.普通方法:在普通方法定义的时候,需要一个对象的实例参数,从而在类中定义普通方法的时候,都必须传送一个参数self,那么这个参数也就是object b.类方 ...
- JavaScript中,{}+{}等于多少?
最近,Gary Bernhardt 在一个简短的演讲视频“Wat”中指出了一个有趣的 JavaScript 怪癖: 在把对象和数组混合相加时,会得到一些意想不到的结果. 本篇文章会依次讲解这些计算结果 ...
- seo技巧-2015/10/05
1.每页都要有它自己的文件名,并且有它自己的上级文件夹和它自己相关关键字. 2.建议在每页上使用一个的H1标签.我也试着使用许多H2 或H3的标签在页面内辅助构成正文内容. 3. 有时花费一点钱帮助你 ...
- 【文件系统】浅解释FAT32
了解完linux下的文件系统之后,顺便对FAT32也研究一下. 假如一个FAT32表如下所示. 文件的簇应该保留在目录中,根据此簇,应该能得到一个块. 要找到文件的下一块,就要根据簇在FAT中寻找,所 ...