第乙個VTK MFC程式

2022-08-13 13:09:19 字數 2095 閱讀 5763

1. 使用mfc嚮導建立乙個mfc對話方塊工程,工程名為vtkdlg

2. 修改資源,新增乙個image control控制項作為vtk渲染視窗,id為idc_vtk_wnd

向主vtkdlgdlg類中新增onsize ondestroy函式

3. 注意在使用cmake配置vtk環境前一定要確定已經完成第2步

4. 刪除多餘工程檔案,只留下 *.h,*.cpp,*.aps,*.rc和res資料夾

5. 使用cmake配置工程

# this vtk_dir usage only works in the vtk build tree...

# make it work in the "make install" tree, too.

#cmake_minimum_required(version 2.8)

set(vtk_dir "d:/3rdparty/vtk/vtk-5.6.1_vc9.0_bin")

find_package(vtk)

if(vtk_found)

include($)

else(vtk_found)

message(fatal_error

"cannot build without vtk. please set vtk_dir.")

endif(vtk_found)

include("$/guisupport/mfc/vtkmfcsettings.cmake")

if(vtk_mfc_delayload_vtk_dlls)

vtk_mfc_add_delayload_flags(cmake_exe_linker_flags

vtkmfc.dll

vtkrendering.dll

vtkio.dll

vtkfiltering.dll

vtkcommon.dll

)endif(vtk_mfc_delayload_vtk_dlls)

set( vtkdlg_srcs

stdafx

vtkdlg

vtkdlgdlg

vtkdlg.rc

res/vtkdlg.rc2

) add_executable(vtkdlg win32 $)

if(vtk_mfc_extra_libs)

target_link_libraries(vtkdlg $)

endif(vtk_mfc_extra_libs)

target_link_libraries(vtkdlg vtkmfc)

6. 在vtkdlgdlg.h中新增成員變數 vtkmfcwindow *pvtkmfcwindow;

在cvtkdlgdlg類的建構函式中新增 pvtkmfcwindow = null;

在oninitdialog()函式中新增初始化 pvtkmfcwindow = new vtkmfcwindow(getdlgitem(idc_vtk_wnd));

在ondestroy()函式中新增釋放資源 if (pvtkmfcwindow) delete pvtkmfcwindow;

7. 這時執行程式,會提示缺少vtkmfc.dll,把該檔案從vtk編譯目錄下拷貝到我們程式的debug目錄下,執行程式

8. 為了調整視窗大小時,使vtk渲染視窗也適應改變,做以下設定

在vtkdlgdlg.h中新增成員變數 point ptborder;

在cvtkdlgdlg類的建構函式中初始化 ptborder = cpoint(0,0);

在oninitdialog()函式中新增初始化

crect crectvtk,crectclient;

pvtkmfcwindow->getclientrect(&crectvtk);

getclientrect(&crectclient);

ptborder.x = crectclient.width() - crectvtk.width();

ptborder.y = crectclient.height() - crectvtk.height();

在onsize函式中如下

view code

現在可以執行下視窗,調整視窗大小試試了

第乙個視窗程式

程式截圖 程式 include lresult callback wndproc hwnd,uint,wparam,lparam int winapi winmain hinstance hinstance,hinstance hprevinstance,pstr szcmdline,int icm...

第乙個popcap 程式

一 tips ddimage mmapimg ddimage 上f12,定位到ddimage.h,在vs2008 中ddimage.h tab標籤上alt o 定位到ddimage.cpp 二 vs2008 中c c code generation runtime library 設成multi t...

第乙個python 程式

有人在論壇 上問 將日誌格式化的方法,剛好學python,就拿這個練手了 09 55 54 error1 tmp error log.3 50 times mon jun 28 00 00 53 2009 09 55 54 error1 tmp error log.3 50 times 09 56 ...