PCL1.8.0 VS2015 MFC显示

PCL的MFC开发
这里面PCL提供的VTK需要自己重新编译,我自己编译的是VTK7.0.0版本,
具体资料可以看我的资源:http://download.csdn.net/download/ldepn/10137427

编译完VTK之后,开始新建MFC。
PCL的MFC显示重点在这几句代码:
在头文件声明下面的变量

boost::shared_ptr<pcl::visualization::PCLVisualizer> m_viewer;//要共享指针类型的,要不然,显示窗口会跳出MFC界面
vtkRenderWindow* m_win;
vtkRenderWindowInteractor* m_iren;

在.cpp文件实现下面的功能:

CStatic *pclStatic = new CStatic();
	LPRECT rect = new CRect;
	pclStatic = (CStatic*)GetDlgItem(IDC_PCLViewer);//获取static的句柄


	//显示窗口初始化
	m_viewer.reset(new pcl::visualization::PCLVisualizer("viewer", false));
	m_viewer->addCoordinateSystem();
	m_viewer->setBackgroundColor(0, 0, 0);
	m_viewer->initCameraParameters();
	m_win = m_viewer->getRenderWindow();

	//m_viewer.setBackgroundColor(0, 0, 0);
	//m_viewer.initCameraParameters();
	//m_viewer.addCoordinateSystem();

	//m_win = m_viewer.getRenderWindow();

	m_win->SetParentId(pclStatic->m_hWnd);
	m_iren = vtkRenderWindowInteractor::New();
	pclStatic->GetWindowRect(rect);
	m_win->SetSize(rect->right - rect->left, rect->bottom - rect->top);
	m_win->SetPosition(0, 0);
	m_iren->SetRenderWindow(m_win);
	m_viewer->createInteractor();
	m_win->Render();

效果如下:
这里写图片描述

MFC背后的错误提示框还没有办法去掉,后面再慢慢搞吧!

找到去掉错误提示框的办法了!
在程序最开始的调用VTK之前加下面的语句:

#ifndef INITIAL_OPENGL
#define INITIAL_OPENGL
#include <vtkAutoInit.h>
//编译VTK的时候如果是OpenGL的就为改为TK_MODULE_INIT(vtkRenderingOpenGL)
VTK_MODULE_INIT(vtkRenderingOpenGL2)
VTK_MODULE_INIT(vtkInteractionStyle)
VTK_MODULE_INIT(vtkRenderingContextOpenGL2)
VTK_MODULE_INIT(vtkRenderingFreeType)
#endif

我这里加载这个文件:

这里写图片描述

注:用PCL一键安装的VTK也可以,不一定需要重新编译VTK

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值