我正在使用PCL在Windows下显示点云。 CloudViewer和PCLVisualizer类可用于此目的。但是当你实例化它们时,它们会创建自己的窗口(通过VTK)。由于我想将显示窗口集成到一个完整的GUI中,我正在寻找一种方法将显示器指向现有窗口,可能是通过传递窗口句柄。窗口不是OpenGL。
这可能吗?任何提示?
答案 0 :(得分:2)
似乎我找到了解决方案。
一些Web帖子建议更改查看器的RenderWindow的父窗口,可以使用
viewer->getRenderWindow()->SetParentId(hWnd);
无论如何,这似乎没有效果。但它激发了我使用Windows功能重新定义,
SetParent((HWND)viewer->getRenderWindow()->GetGenericWindowId(), hWnd);
这确实使观众成为我的窗户的孩子,同时它继续正常工作。可以使用SetWindowLong
调整其他样式标记。
目前我还保留了第一份声明,以防万一。它似乎没有打扰。