VTK VTK嵌入MFC成功

2021-07-02 17:39:57 字數 3254 閱讀 8231

vtk作為醫學顯示庫,得到較多使用。作為較為上層的設計,對opengl進行了封裝,並且有windows、linux、安卓等開發版本,可移植性較強。

不過ves暫時沒有編譯成功。

以下是嵌入mfc-idc**,有個缺陷,暫時沒能修改。

**:

showpointsinvtk(short* &depthimage, int heightdepth, int widthdepth,int idcx)

} printf("%d\n", n);

vtkpolyvertex * polyvertex = vtkpolyvertex::new();

polyvertex->getpointids()->setnumberofids(n);

int i = 0; //建立拓撲關係

for (i = 0; i < n; i++)

vtkunstructuredgrid * grid = vtkunstructuredgrid::new();

grid->setpoints(points);

grid->insertnextcell(polyvertex->getcelltype(),

polyvertex->getpointids());

map1->setinputdata(grid);

vtkactor *actor1 = vtkactor::new();

actor1->getproperty()->setcolor(0.194, 0.562, 0.75);

vtkrenderer *ren = vtkrenderer::new();

ren->addactor(actor1);

ren->setbackground(0, 0, 0);

//renwin和iren分別是vtkwin32openglrenderwindow, vtkwin32renderwindowinteractor

vtkwin32renderwindowinteractor *iren = vtkwin32renderwindowinteractor::new();

vtkwin32openglrenderwindow *win = vtkwin32openglrenderwindow::new();

vtkinteractorstyletrackballcamera *style = vtkinteractorstyletrackballcamera::new();

win->clean();

win->setsize(480, 360);

win->borderson();

win->addrenderer(ren);

iren->setrenderwindow(win);

iren->setinteractorstyle(style);

//搭上乙個顯示用的mfc視窗框架。

cwnd *viewer_wnd;

viewer_wnd = this->getdlgitem(idcx);

hwnd hwnd = (hwnd)viewer_wnd->m_hwnd;

hwnd hparent = ::getparent(hwnd);

//::showwindow(hparent, sw_hide);

::showwindow(hparent, 1);

win->setparentid(this->m_hwnd);

iren->start();

map1->delete();

grid->delete();

actor1->delete();

polyvertex->delete();

ren->delete();

win->delete();

iren->delete();

return 1;

}

顯示效果:

注意事項:使用

iren->start();
導致renter不能更行,修改為以下**可以完成動態更新:

把 render和win放在初始對話方塊初始化,其他**修改為:

this->win->render();

//在 對話方塊初始化時初始化render

inline int ciisu2vrmfcsdlg::showpointsinvtkg(short* &depthimage, int heightdepth, int widthdepth, int idcx)

} vtkpolyvertex * polyvertex = vtkpolyvertex::new();

polyvertex->getpointids()->setnumberofids(n);

int i = 0;

//建立拓撲關係

for (i = 0; i < n; i++)

vtkunstructuredgrid * grid = vtkunstructuredgrid::new();

grid->setpoints(points);

grid->insertnextcell(polyvertex->getcelltype(),

polyvertex->getpointids() );

map->setinputdata(grid);

vtkactor *actorg = vtkactor::new();

actorg->getproperty()->setcolor(0.194, 0.562, 0.75);

vtkrenderer *ren = vtkrenderer::new();

ren->addactor(actorg);

ren->setbackground(0.13, 0.40, 0.15);

this->win->addrenderer(ren);

this->win->render();//自己寫乙個過載-更新函式!

map->delete();

grid->delete();

actorg->delete();

polyvertex->delete();

return 1;

}

後記:效果還不錯,就是和opencv結合時有點麻煩,命名空間衝突。

VTK VTK嵌入MFC成功

vtk作為醫學顯示庫,得到較多使用。作為較為上層的設計,對opengl進行了封裝,並且有windows linux 安卓等開發版本,可移植性較強。不過ves暫時沒有編譯成功。以下是嵌入mfc idc 有個缺陷,暫時沒能修改。showpointsinvtk short depthimage,int h...

在MFC中嵌入Word

摘要正文 一 引言 microsoft office辦公套件以其功能強大 方便實用而被廣泛使用。我們可以使用自動化作為word用以把其功能顯露給其他應用的方式,採用這種方式可以盡可能少的占用自動化客戶的資源,並且不需要被訪問物件的型別資訊就可以進行呼叫。二 建立工程 以下是建立這個mfc應用程式的步...

嵌入CEF到MFC程式

公司專案中一直存在著乙個chtmlview模組來顯示url,但是隨著web頁面的更新 加入html5 and 其它一些比較新的技術 越來越發現使用chtmlview已經無法滿足目前的需求。開始還是試著去修改一些東西去滿足當前需要,不過好景不長終於有一天chtmlview連我們目前的web頁面都打不開...