⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 framemain.cpp

📁 3D reconstruction, medical image processing from colons, using intel image processing for based clas
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// FrameMain.cpp : implementation file//#include "stdafx.h"#include "fusion.h"#include "FrameMain.h"#include "FusionGlobal.h"#include "FusionEnum.h"#include "FMDocVR.h"#include "SplitterXY.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// RxFrameMainRxFrameMain::RxFrameMain(){	m_pFMWndLoad		= NULL;	m_n3DFMatrix		= 0;	m_n3DFSeries		= 0;	m_b3DFMPR			= FALSE;	m_n3DFLocalMin		= -1;	m_n3DFLocalMax		= -1;	m_nTBCurMode		= BTN_ZOOM;	m_pSpFrame3DF0_X1	= NULL;	m_pSpFrame3DF0_Y1	= NULL;	m_pSpFrame3DF0_Y2	= NULL;	m_pSpFrame3DF1_X1	= NULL;	for(int i = 0; i < 3; i++)	{		m_pFMWndVR[i]			= NULL;		m_pFMWnd3DMPR[i]		= NULL;		m_pLocalizerManager[i]	= NULL;		m_pFMWnd3DLocalA[i]		= NULL;		m_pFMWnd3DLocalC[i]		= NULL;		m_pFMWnd3DLocalS[i]		= NULL;	}}RxFrameMain::~RxFrameMain(){}BEGIN_MESSAGE_MAP(RxFrameMain, RxFrameWnd)	//{{AFX_MSG_MAP(RxFrameMain)	ON_WM_CREATE()	ON_WM_SETFOCUS()	ON_WM_DESTROY()	ON_WM_PAINT()	ON_COMMAND(IDTB_PAN, OnPan)	ON_COMMAND(IDTB_ZOOM, OnZoom)	ON_COMMAND(IDTB_CROP, OnCrop)	ON_COMMAND(IDTB_FITTING, OnFitting)	ON_COMMAND(IDTB_RESET, OnReset)	ON_COMMAND(IDTB_3DMPR_BASIC, On3dmprBasic)	ON_COMMAND(IDTB_REGIST_MUTUAL, OnRegistMutual)	ON_COMMAND(IDTB_REGIST_CROSS, OnRegistCross)	ON_COMMAND(IDTB_REGIST_MI, OnRegistMi)	ON_COMMAND(IDTB_3DOP, On3DOP)	ON_UPDATE_COMMAND_UI(IDTB_PAN, OnUpdatePan)	ON_UPDATE_COMMAND_UI(IDTB_ZOOM, OnUpdateZoom)	ON_UPDATE_COMMAND_UI(IDTB_CROP, OnUpdateCrop)	ON_UPDATE_COMMAND_UI(IDTB_3DMPR_BASIC, OnUpdate3dmprBasic)	ON_UPDATE_COMMAND_UI(IDTB_REGIST_MUTUAL, OnUpdateRegistMutual)	ON_UPDATE_COMMAND_UI(IDTB_REGIST_CROSS, OnUpdateRegistCross)	ON_UPDATE_COMMAND_UI(IDTB_REGIST_MI, OnUpdateRegistMi)	ON_UPDATE_COMMAND_UI(IDTB_3DOP, OnUpdate3DOP)	//}}AFX_MSG_MAP	ON_MESSAGE_VOID(UM_INITIALUPDATE,			OnInitialUpdate)END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// RxFrameMain message handlersBOOL RxFrameMain::PreCreateWindow(CREATESTRUCT& cs) {	cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS, 		::LoadCursor(NULL, IDC_ARROW), NULL, NULL);	cs.dwExStyle |= WS_EX_CLIENTEDGE;		return RxFrameWnd::PreCreateWindow(cs);}void RxFrameMain::OnInitialUpdate(){	Frame3DF_InitSplitter();	CRect	rcFixedLoad;	RxGetMainFrame()->GetFMWndRectLoad(rcFixedLoad);	m_pFMWndLoad->MoveWindow(rcFixedLoad);	m_pFMWndLoad->SendMessage(UM_INITIALUPDATE);}int RxFrameMain::OnCreate(LPCREATESTRUCT lpCreateStruct) {	if (RxFrameWnd::OnCreate(lpCreateStruct) == -1)		return -1;	DWORD	dwStyle, dwRxStyle;	dwStyle		= WS_CHILD|WS_CLIPSIBLINGS|WS_CLIPCHILDREN;	dwRxStyle	= 0;	m_pFMWndLoad		= new RxFMWndLoad;	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWndLoad, NULL, IDF_MAIN_WND_LOAD);	dwStyle		= WS_CHILD|WS_CLIPSIBLINGS|WS_CLIPCHILDREN;	m_pSpFrame3DF0_X1	= new RxSplitterX;	m_pSpFrame3DF0_X1->Create(NULL, NULL, dwStyle, CRect(0,0,0,0), this, IDF_MAIN_SPB_3DF0_X1);	m_pSpFrame3DF0_Y1	= new RxSplitterY;	m_pSpFrame3DF0_Y1->Create(NULL, NULL, dwStyle, CRect(0,0,0,0), this, IDF_MAIN_SPB_3DF0_Y1);	m_pSpFrame3DF0_Y2	= new RxSplitterY;	m_pSpFrame3DF0_Y2->Create(NULL, NULL, dwStyle, CRect(0,0,0,0), this, IDF_MAIN_SPB_3DF0_Y2);	m_pSpFrame3DF1_X1	= new RxSplitterX;	m_pSpFrame3DF1_X1->Create(NULL, NULL, dwStyle, CRect(0,0,0,0), this, IDF_MAIN_SPB_3DF1_X1);/*	dwStyle		= WS_CHILD|WS_CLIPSIBLINGS|WS_CLIPCHILDREN;	dwRxStyle	= WS_RX_CAPTION;	m_pFMWndVR[0]		= new RxFMWndVR(RXSERIES_REF);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWndVR[0],			_T("Volume Rendering(R)"),	IDF_MAIN_WND_VR_R);	m_pFMWndVR[1]		= new RxFMWndVR(RXSERIES_FLT);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWndVR[1],			_T("Volume Rendering(F)"),	IDF_MAIN_WND_VR_F);	m_pFMWndVR[2]		= new RxFMWndVR(RXSERIES_COM);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWndVR[2],			_T("Volume Rendering(C)"),	IDF_MAIN_WND_VR_C);	m_pFMWnd3DMPR[0]	= new RxFMWnd3DMPR(RXSERIES_REF);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DMPR[0],		_T("Volume Rendering(R) - MPR"), IDF_MAIN_WND_3DMPR_R);	m_pFMWnd3DMPR[1]	= new RxFMWnd3DMPR(RXSERIES_FLT);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DMPR[1],		_T("Volume Rendering(F) - MPR"), IDF_MAIN_WND_3DMPR_F);	m_pFMWnd3DMPR[2]	= new RxFMWnd3DMPR(RXSERIES_COM);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DMPR[2],		_T("Volume Rendering(C) - MPR"), IDF_MAIN_WND_3DMPR_C);	dwRxStyle	= WS_RX_CAPTION|WS_RX_LOCALIZER;	m_pFMWnd3DLocalA[0]	= new RxFMWndLocalizer(RXSERIES_REF);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalA[0],	_T("Axial(R)"),				IDF_MAIN_WND_3DLOCALA_R);	m_pFMWnd3DLocalA[1]	= new RxFMWndLocalizer(RXSERIES_FLT);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalA[1],	_T("Axial(F)"),				IDF_MAIN_WND_3DLOCALA_F);	m_pFMWnd3DLocalA[2]	= new RxFMWndLocalizer(RXSERIES_COM);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalA[2],	_T("Axial(C)"),				IDF_MAIN_WND_3DLOCALA_C);	m_pFMWnd3DLocalC[0]	= new RxFMWndLocalizer(RXSERIES_REF);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalC[0],	_T("Coronal(R)"),			IDF_MAIN_WND_3DLOCALC_R);	m_pFMWnd3DLocalC[1]	= new RxFMWndLocalizer(RXSERIES_FLT);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalC[1],	_T("Coronal(F)"),			IDF_MAIN_WND_3DLOCALC_F);	m_pFMWnd3DLocalC[2]	= new RxFMWndLocalizer(RXSERIES_COM);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalC[2],	_T("Coronal(C)"),			IDF_MAIN_WND_3DLOCALC_C);	m_pFMWnd3DLocalS[0]	= new RxFMWndLocalizer(RXSERIES_REF);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalS[0],	_T("Sagittal(R)"),			IDF_MAIN_WND_3DLOCALS_R);	m_pFMWnd3DLocalS[1]	= new RxFMWndLocalizer(RXSERIES_FLT);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalS[1],	_T("Sagittal(F)"),			IDF_MAIN_WND_3DLOCALS_F);	m_pFMWnd3DLocalS[2]	= new RxFMWndLocalizer(RXSERIES_COM);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalS[2],	_T("Sagittal(C)"),			IDF_MAIN_WND_3DLOCALS_C);	// localizer manager狼 member牢 m_pMPRAgent客 3俺狼 view甫 积己棺 汲沥(困俊辑 积己茄 轰狼 器牢磐父 措涝)茄促.	for(int i = 0; i < 3; i++){		m_pLocalizerManager[i] = new RxLocalizerManager(i);		m_pLocalizerManager[i]->Attach3ViewsToManager(m_pFMWnd3DLocalA[i], m_pFMWnd3DLocalC[i], m_pFMWnd3DLocalS[i]);	}*/	m_bEdgeDraw = false;	m_bRefSegmented = false;	m_bFloatSegmented = false;	return 0;}void RxFrameMain::OnDestroy() {	RxFrameWnd::OnDestroy();		if(m_pLocalizerManager[0])		delete m_pLocalizerManager[0];	if(m_pLocalizerManager[1])		delete m_pLocalizerManager[1];	if(m_pLocalizerManager[2])		delete m_pLocalizerManager[2];}void RxFrameMain::OnPaint() {	CPaintDC dc(this); // device context for painting		CRect		rcClipBox;	dc.GetClipBox(rcClipBox);	CBrush		brush, *pOldBrush;	brush.CreateSolidBrush(RGB(  0,  0,  0));	pOldBrush	= dc.SelectObject(&brush);	dc.PatBlt(rcClipBox.left, rcClipBox.top, rcClipBox.Width(), rcClipBox.Height(), PATCOPY);	dc.SelectObject(pOldBrush);	brush.DeleteObject();		// Do not call RxFrameWnd::OnPaint() for painting messages}BOOL RxFrameMain::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) {	// first pump through pane	if (RxFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo))		return TRUE;	RxFMWnd		*pActiveWnd = RxGetActiveWnd();	// then pump through active Window.	if(pActiveWnd != NULL && pActiveWnd->OnCmdMsg(nID, nCode, pExtra, pHandlerInfo))		return TRUE;	return FALSE;}void RxFrameMain::OnSetFocus(CWnd* pOldWnd) {	RxFMWnd		*pActiveWnd = RxGetActiveWnd();	if (pActiveWnd != NULL)		pActiveWnd->SetFocus();	else		RxFrameWnd::OnSetFocus(pOldWnd);}/////////////////////////////////////////////////////////////////////////////void RxFrameMain::CreateFMWnd(DWORD dwStyle, DWORD dwRxStyle, RxFMWnd *pWnd, LPCTSTR lpszWindowName, UINT nID){	pWnd->CreateRx(dwStyle, dwRxStyle, CRect(0,0,0,0), this, nID);	pWnd->SetWindowText(lpszWindowName);}void RxFrameMain::OnOpenDicom(){	int				volX, volY, volZ;	RxVolumeData	*pVolumeData; 	for (int nSeries = 0; nSeries < 2; nSeries ++)	{		pVolumeData = RxGetVolumeData(nSeries);		pVolumeData->GetBigVolumeDmsn(&volX, &volY, &volZ);	}	DWORD	dwStyle		= WS_CHILD|WS_CLIPSIBLINGS|WS_CLIPCHILDREN;	DWORD	dwRxStyle	= WS_RX_CAPTION;	if(m_pFMWndVR[0])			m_pFMWndVR[0]->DestroyWindow();	m_pFMWndVR[0]		= new RxFMWndVR(RXSERIES_REF);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWndVR[0],			_T("Volume Rendering(R)"),	IDF_MAIN_WND_VR_R);	if(m_pFMWndVR[1])			m_pFMWndVR[1]->DestroyWindow();	m_pFMWndVR[1]		= new RxFMWndVR(RXSERIES_FLT);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWndVR[1],			_T("Volume Rendering(F)"),	IDF_MAIN_WND_VR_F);	if(m_pFMWndVR[2])			m_pFMWndVR[2]->DestroyWindow();	m_pFMWndVR[2]		= new RxFMWndVR(RXSERIES_COM);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWndVR[2],			_T("Volume Rendering(C)"),	IDF_MAIN_WND_VR_C);	if(m_pFMWnd3DMPR[0])		m_pFMWnd3DMPR[0]->DestroyWindow();	m_pFMWnd3DMPR[0]	= new RxFMWnd3DMPR(RXSERIES_REF);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DMPR[0],		_T("Volume Rendering(R) - MPR"), IDF_MAIN_WND_3DMPR_R);	if(m_pFMWnd3DMPR[1])		m_pFMWnd3DMPR[1]->DestroyWindow();	m_pFMWnd3DMPR[1]	= new RxFMWnd3DMPR(RXSERIES_FLT);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DMPR[1],		_T("Volume Rendering(F) - MPR"), IDF_MAIN_WND_3DMPR_F);	if(m_pFMWnd3DMPR[2])		m_pFMWnd3DMPR[2]->DestroyWindow();	m_pFMWnd3DMPR[2]	= new RxFMWnd3DMPR(RXSERIES_COM);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DMPR[2],		_T("Volume Rendering(C) - MPR"), IDF_MAIN_WND_3DMPR_C);	dwRxStyle	= WS_RX_CAPTION|WS_RX_LOCALIZER;	if(m_pFMWnd3DLocalA[0])		m_pFMWnd3DLocalA[0]->DestroyWindow();	m_pFMWnd3DLocalA[0]	= new RxFMWndLocalizer(RXSERIES_REF);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalA[0],	_T("Axial(R)"),				IDF_MAIN_WND_3DLOCALA_R);	if(m_pFMWnd3DLocalA[1])		m_pFMWnd3DLocalA[1]->DestroyWindow();	m_pFMWnd3DLocalA[1]	= new RxFMWndLocalizer(RXSERIES_FLT);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalA[1],	_T("Axial(F)"),				IDF_MAIN_WND_3DLOCALA_F);	if(m_pFMWnd3DLocalA[2])		m_pFMWnd3DLocalA[2]->DestroyWindow();	m_pFMWnd3DLocalA[2]	= new RxFMWndLocalizer(RXSERIES_COM);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalA[2],	_T("Axial(C)"),				IDF_MAIN_WND_3DLOCALA_C);	if(m_pFMWnd3DLocalC[0])		m_pFMWnd3DLocalC[0]->DestroyWindow();	m_pFMWnd3DLocalC[0]	= new RxFMWndLocalizer(RXSERIES_REF);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalC[0],	_T("Coronal(R)"),			IDF_MAIN_WND_3DLOCALC_R);	if(m_pFMWnd3DLocalC[1])		m_pFMWnd3DLocalC[1]->DestroyWindow();	m_pFMWnd3DLocalC[1]	= new RxFMWndLocalizer(RXSERIES_FLT);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalC[1],	_T("Coronal(F)"),			IDF_MAIN_WND_3DLOCALC_F);	if(m_pFMWnd3DLocalC[2])		m_pFMWnd3DLocalC[2]->DestroyWindow();	m_pFMWnd3DLocalC[2]	= new RxFMWndLocalizer(RXSERIES_COM);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalC[2],	_T("Coronal(C)"),			IDF_MAIN_WND_3DLOCALC_C);	if(m_pFMWnd3DLocalS[0])		m_pFMWnd3DLocalS[0]->DestroyWindow();	m_pFMWnd3DLocalS[0]	= new RxFMWndLocalizer(RXSERIES_REF);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalS[0],	_T("Sagittal(R)"),			IDF_MAIN_WND_3DLOCALS_R);	if(m_pFMWnd3DLocalS[1])		m_pFMWnd3DLocalS[1]->DestroyWindow();	m_pFMWnd3DLocalS[1]	= new RxFMWndLocalizer(RXSERIES_FLT);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalS[1],	_T("Sagittal(F)"),			IDF_MAIN_WND_3DLOCALS_F);	if(m_pFMWnd3DLocalS[2])		m_pFMWnd3DLocalS[2]->DestroyWindow();	m_pFMWnd3DLocalS[2]	= new RxFMWndLocalizer(RXSERIES_COM);	CreateFMWnd(dwStyle, dwRxStyle, m_pFMWnd3DLocalS[2],	_T("Sagittal(C)"),			IDF_MAIN_WND_3DLOCALS_C);	// localizer manager狼 member牢 m_pMPRAgent客 3俺狼 view甫 积己棺 汲沥(困俊辑 积己茄 轰狼 器牢磐父 措涝)茄促.	for(int i = 0; i < 3; i++){		if(m_pLocalizerManager[i])		delete m_pLocalizerManager[i];		m_pLocalizerManager[i] = new RxLocalizerManager(i);		m_pLocalizerManager[i]->Attach3ViewsToManager(m_pFMWnd3DLocalA[i], m_pFMWnd3DLocalC[i], m_pFMWnd3DLocalS[i]);	}	Frame3DF_InitSplitter();	Frame3DF_InitVRWnd();}// 徘捞 函版瞪 版快void RxFrameMain::OnSwitchToMainMenu(BOOL bActive, int nOldMainMenuID, int nCurMainMenuID){	if(!bActive)			// 徘捞 绝绢龙 版快	{		if(nOldMainMenuID == IDF_TOP_LOAD)		{			m_pFMWndLoad->ShowWindow(SW_HIDE);		}		else if(nOldMainMenuID == IDF_TOP_3DFUSION)		{			if(m_n3DFSeries == RXSERIES_COM && m_pFMWndVR[RXSERIES_COM]->GetBtnMixing())				m_pFMWndVR[RXSERIES_COM]->ShowDlgMixing(FALSE);			Frame3DF_FrameHide();		}	}	else					// 徘捞 唱鸥朝 版快	{		int	nSeries = RxGetCurSeries();		if(nCurMainMenuID == IDF_TOP_LOAD)		{			RxSetActiveWnd(m_pFMWndLoad);			m_pFMWndLoad->ShowWindow(SW_SHOW);		}		else if(nCurMainMenuID == IDF_TOP_3DFUSION)		{			Frame3DF_OnChangedMenu();			if(m_n3DFSeries == RXSERIES_COM && m_pFMWndVR[RXSERIES_COM]->GetBtnMixing())			{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -