我正在使用PCL在Windows下显示点云。 CloudViewer和PCLVisualizer类可用于此目的。 但是当你实例化它们时,他们创build自己的窗口(通过VTK)。 因为我想将显示窗口集成到一个完整的GUI中,我正在寻找一种方法来将显示指向现有窗口,可能是通过传递窗口句柄。 该窗口不是OpenGL。
那可能吗 ? 任何提示?
看来我找到了解决办法。
几个Web帖子建议更改查看器的RenderWindow的父窗口,这可以通过
viewer->getRenderWindow()->SetParentId(hWnd);
无论如何,这似乎没有影响。 但它启发了我反悔使用Windows功能,
SetParent((HWND)viewer->getRenderWindow()->GetGenericWindowId(), hWnd);
这确实使观众成为我的窗口的孩子,而它继续正常工作。 可以使用SetWindowLong
调整其他样式标志。
为了以防万一,我现在还保留了第一个陈述。 这似乎并不麻烦。