用VTK和MFC结合做图像的显示,目前知道两种方式:
一种是使用VTK封装好的一个类vtkImageViewer2,一种是定义自己的vtkRenderer,vtkRenderWindowInteractor等
实现目标:初始化没有数据输入时,view已经显示好了
1.使用vtkImageViewer2时,通过其成员函数SetInPut()输入数据。代码如下
vtkSmartPointer<vtkImageViewer2> m_ImageView;
m_ImageView->SetParentId(GetSafeHwnd());
m_ImageView->SetPosition(VIEW_MARGIN,VIEW_MARGIN);
m_ImageView->SetSize(nimageHeight,nimageWidth);
m_ImageView->SetupInteractor(m_iren[0]);
绘制代码:
①m_ImageView->GetRenderer()->Render();
或者
②m_ImageView->Render();
第一种绘制时,会在程序初始启动的时候,绘制好界面,但是当输入数据为NULL时,vtk总会弹出提示窗口,极为不爽
第二种绘制时,不会弹出提示窗口,但是只有当数据输入时,才绘制界面
因此,这种方法无法达到要求。
2.定义自己的vtkRenderer,vtkRenderWindowInteractor等,可以实现目标功能,但是不能直接像vtkImageViewer那样做切片显示