将查看器关联到 PCL 下的现有 window
Associate a viewer to an existing window under PCL
我正在使用 PCL 在 Windows 下显示点云。 CloudViewer 和 PCLVisualizer 类 可用于此目的。但是当你实例化它们时,它们会创建自己的 window(通过 VTK)。因为我想将显示 window 集成到一个完整的 GUI 中,所以我正在寻找一种将显示定向到现有 window 的方法,可能是通过传递 window 句柄。 window 不是 OpenGL。
这可能吗?有什么提示吗?
看来我找到了解决办法
一些网络帖子建议更改查看器 RenderWindow 的父级 window,这可以通过
完成
viewer->getRenderWindow()->SetParentId(hWnd);
反正这个好像没有效果。但它启发我改用 Windows 函数重新设置父级,
SetParent((HWND)viewer->getRenderWindow()->GetGenericWindowId(), hWnd);
这确实使查看器成为我的 window 的子项,同时它继续正常工作。可以使用 SetWindowLong
.
调整其他样式标志
目前我也保留了第一个声明,以防万一。好像不麻烦。
我正在使用 PCL 在 Windows 下显示点云。 CloudViewer 和 PCLVisualizer 类 可用于此目的。但是当你实例化它们时,它们会创建自己的 window(通过 VTK)。因为我想将显示 window 集成到一个完整的 GUI 中,所以我正在寻找一种将显示定向到现有 window 的方法,可能是通过传递 window 句柄。 window 不是 OpenGL。
这可能吗?有什么提示吗?
看来我找到了解决办法
一些网络帖子建议更改查看器 RenderWindow 的父级 window,这可以通过
完成viewer->getRenderWindow()->SetParentId(hWnd);
反正这个好像没有效果。但它启发我改用 Windows 函数重新设置父级,
SetParent((HWND)viewer->getRenderWindow()->GetGenericWindowId(), hWnd);
这确实使查看器成为我的 window 的子项,同时它继续正常工作。可以使用 SetWindowLong
.
目前我也保留了第一个声明,以防万一。好像不麻烦。