将查看器与PCL下的现有窗口相关联

我正在使用PCL在Windows下显示点云。 CloudViewer和PCLVisualizer类可用于此目的。 但是当你实例化它们时,他们创build自己的窗口(通过VTK)。 因为我想将显示窗口集成到一个完整的GUI中,我正在寻找一种方法来将显示指向现有窗口,可能是通过传递窗口句柄。 该窗口不是OpenGL。

那可能吗 ? 任何提示?

看来我找到了解决办法。

几个Web帖子建议更改查看器的RenderWindow的父窗口,这可以通过

viewer->getRenderWindow()->SetParentId(hWnd); 

无论如何,这似乎没有影响。 但它启发了我反悔使用Windows功能,

 SetParent((HWND)viewer->getRenderWindow()->GetGenericWindowId(), hWnd); 

这确实使观众成为我的窗口的孩子,而它继续正常工作。 可以使用SetWindowLong调整其他样式标志。

为了以防万一,我现在还保留了第一个陈述。 这似乎并不麻烦。