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

📄 dlgoptions.cpp

📁 3D reconstruction, medical image processing from colons, using intel image processing for based clas
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// DlgOptions.cpp : implementation file//#include "stdafx.h"#include "fusion.h"#include "DlgOptions.h"#include "FusionColorUI.h"#include "Buttons.h"#include "EditInt.h"#include "EditFloat.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// RxDlgOptions dialogRxDlgOptions::RxDlgOptions(CWnd* pParent /*=NULL*/)	: RxDlgCommon(pParent){	//{{AFX_DATA_INIT(RxDlgOptions)		// NOTE: the ClassWizard will add member initialization here	//}}AFX_DATA_INIT	m_strCaption			= "Options";	m_pBtnClose				= NULL;	m_nTabIndex				= -1;	m_stRegist.nIterate		= 0;	m_stRegist.fVarF		= 0.0f;	m_stRegist.fCoVarR		= 0.0f;	m_stRegist.fCoVarF		= 0.0f;	m_stRegist.fLearnTrans	= 0.0f;	m_stRegist.fLearnRot	= 0.0f;	m_pEdIterate			= NULL;	m_pEdVarF				= NULL;	m_pEdCoVarR				= NULL;	m_pEdCoVarF				= NULL;	m_pEdLearnTrans			= NULL;	m_pEdLearnRot			= NULL;	m_stSampling.nMode		= 0;	m_stSampling.nCount		= 0;	m_stSampling.nThreshold	= 0;	m_stSampling.fTolerance	= 0.0f;	m_pBtnUniform			= NULL;	m_pBtnRandom			= NULL;	m_pBtnSobel				= NULL;	m_pBtnSobelLevoy		= NULL;	m_pEdCount				= NULL;	m_pEdThreshold			= NULL;	m_pEdTolerance			= NULL;	m_stMIAnalysis.nRadio1	= 0;	m_stMIAnalysis.nRadio2	= 0;	m_pBtnMIOriginal		= NULL;	m_pBtnMIFast			= NULL;	m_pBtnSurface			= NULL;	m_pBtnPartial			= NULL;	m_pBtnTrilinear			= NULL;	m_pBtnNearest			= NULL;	m_pBtnOk				= NULL;	m_pBtnCancel			= NULL;	m_pBtnApply				= NULL;}BEGIN_MESSAGE_MAP(RxDlgOptions, RxDlgCommon)	//{{AFX_MSG_MAP(RxDlgOptions)	ON_WM_CREATE()	ON_WM_DESTROY()	ON_WM_LBUTTONUP()	//}}AFX_MSG_MAP	ON_COMMAND_RANGE(IDD_OPTIONS_BTN_UNIFORM,	IDD_OPTIONS_BTN_NEAREST,	OnControls)END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// RxDlgOptions message handlersBOOL RxDlgOptions::OnInitDialog() {	RxDlgCommon::OnInitDialog();		m_pBtnClose->LoadBitmaps(IDB_BTN_CLOSE, CSize(14,14), BM_NORMAL|BM_SELECT);	m_pEdIterate->SetFont(GetFont(), FALSE);	m_pEdIterate->SetRange(0, 100);	m_pEdVarF->SetFont(GetFont(), FALSE);	m_pEdVarF->SetRange(0.0f, 255.0f);	m_pEdVarF->SetDecimalPoint(1);	m_pEdCoVarR->SetFont(GetFont(), FALSE);	m_pEdCoVarR->SetRange(0.0f, 255.0f);	m_pEdCoVarR->SetDecimalPoint(1);	m_pEdCoVarF->SetFont(GetFont(), FALSE);	m_pEdCoVarF->SetRange(0.0f, 255.0f);	m_pEdCoVarF->SetDecimalPoint(1);	m_pEdLearnTrans->SetFont(GetFont(), FALSE);	m_pEdLearnTrans->SetDecimalPoint(4);	m_pEdLearnRot->SetFont(GetFont(), FALSE);	m_pEdLearnRot->SetDecimalPoint(4);	m_pBtnUniform->SetFont(GetFont(), FALSE);	m_pBtnUniform->RecalcLayout();	m_pBtnUniform->m_crBkgnd	= RGB(192,192,192);	m_pBtnRandom->SetFont(GetFont(), FALSE);	m_pBtnRandom->RecalcLayout();	m_pBtnRandom->m_crBkgnd		= RGB(192,192,192);	m_pBtnSobel->SetFont(GetFont(), FALSE);	m_pBtnSobel->RecalcLayout();	m_pBtnSobel->m_crBkgnd		= RGB(192,192,192);	m_pBtnSobelLevoy->SetFont(GetFont(), FALSE);	m_pBtnSobelLevoy->RecalcLayout();	m_pBtnSobelLevoy->m_crBkgnd	= RGB(192,192,192);	m_pEdCount->SetFont(GetFont(), FALSE);	m_pEdCount->SetRange(0, 100);	m_pEdThreshold->SetFont(GetFont(), FALSE);	m_pEdThreshold->SetRange(0, 255);	m_pEdTolerance->SetFont(GetFont(), FALSE);	m_pEdTolerance->SetRange(0.0f, 255.0f);	m_pEdTolerance->SetDecimalPoint(1);	m_pBtnMIOriginal->SetFont(GetFont(), FALSE);	m_pBtnMIOriginal->RecalcLayout();	m_pBtnMIOriginal->m_crBkgnd	= RGB(192,192,192);	m_pBtnMIFast->SetFont(GetFont(), FALSE);	m_pBtnMIFast->RecalcLayout();	m_pBtnMIFast->m_crBkgnd	= RGB(192,192,192);	m_pBtnSurface->SetFont(GetFont(), FALSE);	m_pBtnSurface->RecalcLayout();	m_pBtnSurface->m_crBkgnd	= RGB(192,192,192);	m_pBtnPartial->SetFont(GetFont(), FALSE);	m_pBtnPartial->RecalcLayout();	m_pBtnPartial->m_crBkgnd	= RGB(192,192,192);	m_pBtnTrilinear->SetFont(GetFont(), FALSE);	m_pBtnTrilinear->RecalcLayout();	m_pBtnTrilinear->m_crBkgnd	= RGB(192,192,192);	m_pBtnNearest->SetFont(GetFont(), FALSE);	m_pBtnNearest->RecalcLayout();	m_pBtnNearest->m_crBkgnd	= RGB(192,192,192);	m_pBtnOk->SetFont(GetFont(), FALSE);	m_pBtnCancel->SetFont(GetFont(), FALSE);	m_pBtnApply->SetFont(GetFont(), FALSE);		UpdateData(FALSE);		SetTabCtrl(0);	return TRUE;  // return TRUE unless you set the focus to a control	              // EXCEPTION: OCX Property Pages should return FALSE}int RxDlgOptions::OnCreate(LPCREATESTRUCT lpCreateStruct) {	if (RxDlgCommon::OnCreate(lpCreateStruct) == -1)		return -1;		CRect		rcClient(  0,  0,300,300);	VERIFY(SetWindowPos(NULL, -1, -1, rcClient.Width(), rcClient.Height(), 						SWP_NOMOVE|SWP_NOZORDER|SWP_NOREDRAW|SWP_NOACTIVATE));	UINT	nStyle = WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON;	m_pBtnClose			= new RxBitmapButton;	m_pBtnClose->Create		(NULL, nStyle, 									CRect(rcClient.right-22, rcClient.top+1, 0, 0), this, IDCANCEL);	m_rcTabRegist.SetRect( 25, 30,109, 46);	m_rcTabSample.SetRect(105, 30,185, 46);	m_rcTabMIAnalysis.SetRect(181, 30, 261, 46);	m_rcTabBorder.SetRect( 15, 30,280,240);	nStyle	= WS_CHILD|WS_TABSTOP|ES_CENTER;	m_pEdIterate		= new RxEditInt;	m_pEdIterate->CreateEx	(WS_EX_CLIENTEDGE, _T("EDIT"), NULL, nStyle, CRect(170, 70,230, 90), this, IDD_OPTIONR_ED_ITERATE);	m_pEdVarF			= new RxEditFloat;	m_pEdVarF->CreateEx		(WS_EX_CLIENTEDGE, _T("EDIT"), NULL, nStyle, CRect(170, 95,230,115), this, IDD_OPTIONR_ED_VAR_F);	m_pEdCoVarR			= new RxEditFloat;	m_pEdCoVarR->CreateEx	(WS_EX_CLIENTEDGE, _T("EDIT"), NULL, nStyle, CRect(170,120,230,140), this, IDD_OPTIONR_ED_CO_VAR_R);	m_pEdCoVarF			= new RxEditFloat;	m_pEdCoVarF->CreateEx	(WS_EX_CLIENTEDGE, _T("EDIT"), NULL, nStyle, CRect(170,145,230,165), this, IDD_OPTIONR_ED_CO_VAR_F);	m_pEdLearnTrans		= new RxEditFloat;	m_pEdLearnTrans->CreateEx(WS_EX_CLIENTEDGE, _T("EDIT"), NULL, nStyle, CRect(170,170,230,190), this, IDD_OPTIONR_ED_LEARN_TRANS);	m_pEdLearnRot		= new RxEditFloat;	m_pEdLearnRot->CreateEx	(WS_EX_CLIENTEDGE, _T("EDIT"), NULL, nStyle, CRect(170,195,230,215), this, IDD_OPTIONR_ED_LEARN_ROT);	nStyle	= WS_CHILD|WS_TABSTOP|BS_OWNERDRAW;	m_pBtnUniform		= new RxRadioButton;	m_pBtnUniform->Create	(_T("Uniform"),		nStyle, CRect( 65, 70,  0,  0), this, IDD_OPTIONS_BTN_UNIFORM);	m_pBtnRandom		= new RxRadioButton;	m_pBtnRandom->Create	(_T("Random"),		nStyle, CRect(145, 70,  0,  0), this, IDD_OPTIONS_BTN_RANDOM);	m_pBtnSobel			= new RxRadioButton;	m_pBtnSobel->Create		(_T("Sobel"),		nStyle, CRect( 65, 90,  0,  0), this, IDD_OPTIONS_BTN_SOBEL);	m_pBtnSobelLevoy	= new RxRadioButton;	m_pBtnSobelLevoy->Create(_T("Sobel-levoy"),	nStyle, CRect(145, 90,  0,  0), this, IDD_OPTIONS_BTN_SOBEL_LEVOY);	nStyle	= WS_CHILD|WS_TABSTOP|ES_CENTER;	m_pEdCount			= new RxEditInt;	m_pEdCount->CreateEx	(WS_EX_CLIENTEDGE, _T("EDIT"), NULL, nStyle, CRect(150,135,210,155), this, IDD_OPTIONS_ED_COUNT);	m_pEdThreshold		= new RxEditInt;	m_pEdThreshold->CreateEx(WS_EX_CLIENTEDGE, _T("EDIT"), NULL, nStyle, CRect(150,160,210,180), this, IDD_OPTIONS_ED_THRESHOLD);	m_pEdTolerance		= new RxEditFloat;	m_pEdTolerance->CreateEx(WS_EX_CLIENTEDGE, _T("EDIT"), NULL, nStyle, CRect(150,185,210,205), this, IDD_OPTIONS_ED_TOLERANCE);	nStyle	= WS_CHILD|WS_TABSTOP|BS_OWNERDRAW;	m_pBtnMIOriginal	= new RxRadioButton;	m_pBtnMIOriginal->Create	(_T("Original MI-based method"),									nStyle, CRect( 65, 70, 65, 70), this, IDD_OPTIONS_BTN_MI_ORIGINAL);	m_pBtnMIFast		= new RxRadioButton;	m_pBtnMIFast->Create		(_T("Fast MI-based method"),									nStyle, CRect( 65, 95, 65, 95), this, IDD_OPTIONS_BTN_MI_FAST);	m_pBtnSurface		= new RxRadioButton;	m_pBtnSurface->Create		(_T("Surface-based method"),									nStyle, CRect( 65,120, 65,120), this, IDD_OPTIONS_BTN_SURFACE);	m_pBtnPartial		= new RxRadioButton;	m_pBtnPartial->Create		(_T("Partial volume interpolation"),									nStyle, CRect( 65,155, 65,155), this, IDD_OPTIONS_BTN_PARTIAL);	m_pBtnTrilinear		= new RxRadioButton;	m_pBtnTrilinear->Create		(_T("Trilinear interpolation"),									nStyle, CRect( 65,180, 65,180), this, IDD_OPTIONS_BTN_TRILINEAR);	m_pBtnNearest		= new RxRadioButton;	m_pBtnNearest->Create		(_T("Nearest neighbor interpolation"),									nStyle, CRect( 65,205, 65,205), this, IDD_OPTIONS_BTN_NEAREST);	nStyle	= WS_CHILD|WS_VISIBLE|WS_TABSTOP|BS_PUSHBUTTON;	m_pBtnOk			= new RxPushButton;	m_pBtnOk->Create		(_T("Ok"),			nStyle, CRect( 65,255,130,275), this, IDOK);	m_pBtnCancel		= new RxPushButton;	m_pBtnCancel->Create	(_T("Cancel"),		nStyle, CRect(145,255,210,275), this, IDCANCEL);	m_pBtnApply			= new RxPushButton;	m_pBtnApply->Create		(_T("Apply"),		nStyle, CRect(  0,  0,  0,  0), this, IDD_OPTIONS_BTN_APPLY);	return 0;}void RxDlgOptions::OnDestroy() {	RxDlgCommon::OnDestroy();		if(m_pBtnClose)			delete m_pBtnClose;	if(m_pEdIterate)		delete m_pEdIterate;	if(m_pEdVarF)			delete m_pEdVarF;	if(m_pEdCoVarR)			delete m_pEdCoVarR;	if(m_pEdCoVarF)			delete m_pEdCoVarF;	if(m_pEdLearnTrans)		delete m_pEdLearnTrans;	if(m_pEdLearnRot)		delete m_pEdLearnRot;	if(m_pBtnUniform)		delete m_pBtnUniform;	if(m_pBtnRandom)		delete m_pBtnRandom;	if(m_pBtnSobel)			delete m_pBtnSobel;	if(m_pBtnSobelLevoy)	delete m_pBtnSobelLevoy;	if(m_pEdCount)			delete m_pEdCount;	if(m_pEdThreshold)		delete m_pEdThreshold;	if(m_pEdTolerance)		delete m_pEdTolerance;	if(m_pBtnMIOriginal)	delete m_pBtnMIOriginal;	if(m_pBtnMIFast)		delete m_pBtnMIFast;	if(m_pBtnSurface)		delete m_pBtnSurface;	if(m_pBtnPartial)		delete m_pBtnPartial;	if(m_pBtnTrilinear)		delete m_pBtnTrilinear;	if(m_pBtnNearest)		delete m_pBtnNearest;	if(m_pBtnOk)			delete m_pBtnOk;	if(m_pBtnCancel)		delete m_pBtnCancel;	if(m_pBtnApply)			delete m_pBtnApply;}void RxDlgOptions::OnDraw(CDC *pDC){	RxDlgCommon::OnDraw(pDC);	CFont	*pOldFont = pDC->SelectObject(GetFont());	pDC->SetBkMode(TRANSPARENT);	CPen	pen, *pOldPen;	pen.CreatePen(PS_SOLID, 1, RGB(  0,  0,  0));	pOldPen = pDC->SelectObject(&pen);	CBrush	brush, *pOldBrush;	brush.CreateSolidBrush(RGB(192,192,192));	pOldBrush = pDC->SelectObject(&brush);	CRect	rect;	rect = m_rcTabBorder;	rect.top += 16;	pDC->Rectangle(rect);	int			i, j;	CString		strTab;	for(i = 0; i < 4; i++)	{		if(i == m_nTabIndex )	continue;		if(i == 3)				j = m_nTabIndex;		else					j = i;		if(j == 0)		{			rect = m_rcTabRegist;			strTab = _T("Registration");		}		else if(j == 1)		{			rect = m_rcTabSample;			strTab = _T("Sampling");		}		else if(j == 2)		{			rect = m_rcTabMIAnalysis;			strTab = _T("MI Analysis");		}		if(j == m_nTabIndex)		{			pDC->BeginPath();				pDC->MoveTo(rect.left, rect.bottom+1);				pDC->LineTo(rect.left+8, rect.top);				pDC->LineTo(rect.right-8, rect.top);				pDC->LineTo(rect.right, rect.bottom+1);			pDC->EndPath();			pDC->FillPath();			pDC->MoveTo(rect.left, rect.bottom);			pDC->LineTo(rect.left+8, rect.top);			pDC->LineTo(rect.right-8, rect.top);			pDC->LineTo(rect.right, rect.bottom);			rect.OffsetRect(0, 1);			pDC->SetTextColor(RGB(222,222,222));			pDC->DrawText(strTab, rect, DT_SINGLELINE|DT_VCENTER|DT_CENTER);			rect.OffsetRect(0, -1);			pDC->SetTextColor(RGB(  0,  0,  0));			pDC->DrawText(strTab, rect, DT_SINGLELINE|DT_VCENTER|DT_CENTER);		}		else		{			pDC->MoveTo(rect.left, rect.bottom);			pDC->LineTo(rect.left+8, rect.top);			pDC->LineTo(rect.right-8, rect.top);			pDC->LineTo(rect.right, rect.bottom);			pDC->LineTo(rect.left, rect.bottom);			pDC->DrawText(strTab, rect, DT_SINGLELINE|DT_VCENTER|DT_CENTER);		}	}	pDC->SelectObject(pOldPen);	pDC->SelectObject(pOldBrush);	pen.DeleteObject();	brush.DeleteObject();	if(m_nTabIndex == 0)	{		pDC->TextOut(63, 72, _T("Iteration"));		pDC->TextOut(63, 97, _T("Variance(F)"));		pDC->TextOut(63,122, _T("Co-Variance(R)"));		pDC->TextOut(63,147, _T("Co-Variance(F)"));		pDC->TextOut(63,172, _T("Learning rate(Trans)"));		pDC->TextOut(63,197, _T("Learning rate(Rot)"));	}	else if(m_nTabIndex == 1)

⌨️ 快捷键说明

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