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

📄 framebottom.cpp

📁 3D reconstruction, medical image processing from colons, using intel image processing for based clas
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// FrameBottom.cpp : implementation file//#include "stdafx.h"#include "fusion.h"#include "FrameBottom.h"#include "FusionGlobal.h"#include "Regfunc.h"#include "PresetWindowing.h"#include "BitmapStatic.h"#include "Buttons.h"#include "DlgOptions.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// RxFrameBottomRxFrameBottom::RxFrameBottom(){	m_pStcLogo				= NULL;	m_pStcWindowing			= NULL;	m_pStcZoom				= NULL;	m_pStcSeries			= NULL;	m_pEdWindowingWidth		= NULL;	m_pEdWindowingLevel		= NULL;	m_pEdZoom				= NULL;	m_pSBCWindowingWidth	= NULL;	m_pSBCWindowingLevel	= NULL;	m_pCBPresetWindowing	= NULL;	m_pPresetWindowing		= NULL;	m_nRadioSeries			= -1;	m_pBtnReference			= NULL;	m_pBtnFloat				= NULL;	m_pBtnCombine			= NULL;	m_pBtnFineTuning		= NULL;	m_pBtnOptions			= NULL;	m_pBtnHelp				= NULL;}RxFrameBottom::~RxFrameBottom(){}BEGIN_MESSAGE_MAP(RxFrameBottom, RxFrameWnd)	//{{AFX_MSG_MAP(RxFrameBottom)	ON_WM_CREATE()	ON_WM_DESTROY()	ON_WM_PAINT()	//}}AFX_MSG_MAP	ON_MESSAGE_VOID(UM_INITIALUPDATE,		OnInitialUpdate)	ON_NOTIFY(UDN_DELTAPOS,					IDF_BOTTOM_SBC_WIDTH,			OnDeltaposSpinOpacity)	ON_NOTIFY(UDN_DELTAPOS,					IDF_BOTTOM_SBC_LEVEL,			OnDeltaposSpinOpacity)	ON_NOTIFY(EN_CHANGED_INT,				IDF_BOTTOM_ED_WIDTH,			OnEditChanged)	ON_NOTIFY(EN_CHANGED_INT,				IDF_BOTTOM_ED_LEVEL,			OnEditChanged)	ON_COMMAND_RANGE(ID_WINDOWING_PRESET_F1,		ID_WINDOWING_PRESET_F12,	OnPresetWindowingHotChanged)	ON_CBN_DROPDOWN(IDF_BOTTOM_CB_PRESET_WINDOWING,  OnPresetWindowingCBDropDown)	ON_CBN_SELCHANGE(IDF_BOTTOM_CB_PRESET_WINDOWING, OnPresetWindowingCBChanged)	ON_COMMAND_RANGE(IDF_BOTTOM_BTN_REFERENCE,		IDF_BOTTOM_BTN_COMBINE,		OnRadioSeries)	ON_COMMAND(IDF_BOTTOM_BTN_FTUNING,		OnBtnTuning)	ON_COMMAND(IDF_BOTTOM_BTN_OPTIONS,		OnBtnOptions)	ON_COMMAND(IDF_BOTTOM_BTN_HELP,			OnBtnHelp)END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// RxFrameBottom message handlersvoid RxFrameBottom::OnInitialUpdate(){	CClientDC	dc(this);	int		nHeight = -((dc.GetDeviceCaps(LOGPIXELSY) * 9) / 74);	m_Font.CreateFont(nHeight, 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET, OUT_CHARACTER_PRECIS,					CLIP_CHARACTER_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH|FF_DONTCARE, _T("Tahoma"));	m_pStcLogo->LoadBitmap			(IDB_FBOTTOM_STC_LOGO);	m_pStcWindowing->LoadBitmap		(IDB_FBOTTOM_STC_WINDOW);	m_pStcZoom->LoadBitmap			(IDB_FBOTTOM_STC_ZOOM);	m_pStcSeries->LoadBitmap		(IDB_FBOTTOM_STC_SERIES);	m_pBtnReference->LoadBitmaps	(IDB_FBOTTOM_BTN_REFERENCE,	CSize(17,17), BM_ALL&~BM_FOCUS);	m_pBtnFloat->LoadBitmaps		(IDB_FBOTTOM_BTN_FLOAT,		CSize(17,17), BM_ALL&~BM_FOCUS);	m_pBtnCombine->LoadBitmaps		(IDB_FBOTTOM_BTN_COMBINE,	CSize(17,17), BM_ALL&~BM_FOCUS);	m_pBtnFineTuning->LoadBitmaps	(IDB_FBOTTOM_BTN_FTUNING,	CSize(83,24), BM_NORMAL|BM_SELECT);	m_pBtnOptions->LoadBitmaps		(IDB_FBOTTOM_BTN_OPTIONS,	CSize(83,24), BM_NORMAL|BM_SELECT);	m_pBtnHelp->LoadBitmaps			(IDB_FBOTTOM_BTN_HELP,		CSize(83,24), BM_NORMAL|BM_SELECT);	m_pEdWindowingWidth->SetFont(&m_Font, FALSE);	m_pEdWindowingWidth->SetRange(2, 4095);	m_pEdWindowingLevel->SetFont(&m_Font, FALSE);	m_pEdWindowingLevel->SetRange(-1024, 3071);	m_pEdZoom->SetFont(&m_Font, FALSE);	m_pEdZoom->SetRange(0, 500);	m_pCBPresetWindowing->SetFont(&m_Font, FALSE);	RecalcLayout();}int RxFrameBottom::OnCreate(LPCREATESTRUCT lpCreateStruct) {	if (RxFrameWnd::OnCreate(lpCreateStruct) == -1)		return -1;	UINT	nStyle = WS_CHILD|WS_VISIBLE;	m_pStcLogo				= new RxBitmapStatic;	m_pStcLogo->Create			(NULL, NULL,		nStyle, CRect(0,0,0,0), this, IDC_STATIC);	nStyle	= WS_CHILD;	m_pStcWindowing			= new RxBitmapStatic;	m_pStcWindowing->Create		(NULL, NULL,		nStyle, CRect(0,0,0,0), this, IDC_STATIC);	m_pStcZoom				= new RxBitmapStatic;	m_pStcZoom->Create			(NULL, NULL,		nStyle, CRect(0,0,0,0), this, IDC_STATIC);	m_pStcSeries			= new RxBitmapStatic;	m_pStcSeries->Create		(NULL, NULL,		nStyle, CRect(0,0,0,0), this, IDC_STATIC);	nStyle	= WS_CHILD|WS_VISIBLE|WS_BORDER|ES_CENTER;	m_pEdWindowingWidth		= new RxEditInt;	m_pEdWindowingWidth->Create	(nStyle, CRect( 45,  4, 85, 24), m_pStcWindowing, IDF_BOTTOM_ED_WIDTH);	m_pEdWindowingLevel		= new RxEditInt;	m_pEdWindowingLevel->Create	(nStyle, CRect(140,  4,180, 24), m_pStcWindowing, IDF_BOTTOM_ED_LEVEL);	m_pEdZoom				= new RxEditInt;	m_pEdZoom->Create			(nStyle, CRect( 44,  4, 84, 24), m_pStcZoom,      IDF_BOTTOM_ED_ZOOM);	nStyle	= WS_CHILD|WS_VISIBLE;	m_pSBCWindowingWidth	= new CSpinButtonCtrl;	m_pSBCWindowingWidth->Create(nStyle, CRect( 85,  4,100, 24), m_pStcWindowing, IDF_BOTTOM_SBC_WIDTH);	m_pSBCWindowingLevel	= new CSpinButtonCtrl;	m_pSBCWindowingLevel->Create(nStyle, CRect(180,  4,195, 24), m_pStcWindowing, IDF_BOTTOM_SBC_LEVEL);	nStyle	= WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWNLIST;	m_pCBPresetWindowing	= new CComboBox;	m_pCBPresetWindowing->Create(nStyle, CRect(245,  3,342,200), m_pStcWindowing, IDF_BOTTOM_CB_PRESET_WINDOWING);	m_pPresetWindowing		= new RxPresetWindowing;	nStyle	= WS_CHILD|WS_VISIBLE|BS_USERBUTTON;	m_pBtnReference			= new RxBitmapButton;	m_pBtnReference->Create		(NULL, nStyle, CRect(  7,  6, 24, 23), m_pStcSeries, IDF_BOTTOM_BTN_REFERENCE);	m_pBtnFloat				= new RxBitmapButton;	m_pBtnFloat->Create			(NULL, nStyle, CRect( 27,  6, 44, 23), m_pStcSeries, IDF_BOTTOM_BTN_FLOAT);	m_pBtnCombine			= new RxBitmapButton;	m_pBtnCombine->Create		(NULL, nStyle, CRect( 47,  6, 64, 23), m_pStcSeries, IDF_BOTTOM_BTN_COMBINE);	nStyle	= WS_CHILD|BS_CHECKBOX;	m_pBtnFineTuning		= new RxBitmapButton;	m_pBtnFineTuning->Create	(_T("Fine Tuning"),	nStyle, CRect(0,0,0,0), this, IDF_BOTTOM_BTN_FTUNING);	nStyle	= WS_CHILD|BS_PUSHBUTTON;	m_pBtnOptions			= new RxBitmapButton;	m_pBtnOptions->Create		(_T("Options"),		nStyle, CRect(0,0,0,0), this, IDF_BOTTOM_BTN_OPTIONS);	nStyle	= WS_CHILD|BS_CHECKBOX;	m_pBtnHelp				= new RxBitmapButton;	m_pBtnHelp->Create			(_T("Help"),		nStyle, CRect(0,0,0,0), this, IDF_BOTTOM_BTN_HELP);		return 0;}void RxFrameBottom::OnDestroy() {	RxFrameWnd::OnDestroy();	if(m_pEdWindowingWidth)			delete m_pEdWindowingWidth;	if(m_pEdWindowingLevel)			delete m_pEdWindowingLevel;	if(m_pEdZoom)					delete m_pEdZoom;	if(m_pSBCWindowingWidth)		delete m_pSBCWindowingWidth;	if(m_pSBCWindowingLevel)		delete m_pSBCWindowingLevel;		if(m_pCBPresetWindowing)		delete m_pCBPresetWindowing;	if(m_pPresetWindowing)			delete m_pPresetWindowing;	if(m_pBtnReference)				delete m_pBtnReference;	if(m_pBtnFloat)					delete m_pBtnFloat;	if(m_pBtnCombine)				delete m_pBtnCombine;	if(m_pBtnFineTuning)			delete m_pBtnFineTuning;	if(m_pBtnOptions)				delete m_pBtnOptions;	if(m_pBtnHelp)					delete m_pBtnHelp;}void RxFrameBottom::OnPaint() {	CPaintDC dc(this); // device context for painting		CRect	rcClipBox;	dc.GetClipBox(rcClipBox);	CBrush	brush, *pOldBrush;	brush.CreateSolidBrush(RXCOLOR_10);	pOldBrush = dc.SelectObject(&brush);	dc.PatBlt(rcClipBox.left, rcClipBox.top, rcClipBox.Width(), rcClipBox.Height(), PATCOPY);	dc.SelectObject(pOldBrush);	brush.DeleteObject();	CPen	pen, *pOldPen;	pen.CreatePen(PS_SOLID, 1, RGB(255,255,255));	pOldPen = dc.SelectObject(&pen);	dc.MoveTo(rcClipBox.left, 0);			dc.LineTo(rcClipBox.right, 0);	dc.SelectObject(pOldPen);	pen.DeleteObject();}void RxFrameBottom::RecalcLayout(){	CRect	rcFClient, rect;	RxGetMainFrame()->GetFrameRectBottom(rcFClient);	rect.SetRect(  7,  4, 63, 31);	m_pStcLogo->MoveWindow(rect);	rect.SetRect( 80,  4,430, 34);	m_pStcWindowing->MoveWindow(rect);	rect.SetRect(440,  4,530, 34);	m_pStcZoom->MoveWindow(rect);	rect.SetRect(540,  4,611, 34);	m_pStcSeries->MoveWindow(rect);	rect.SetRect(rcFClient.right-90, 6, rcFClient.right- 7, 30);//	m_pBtnHelp->MoveWindow(rect);	m_pBtnOptions->MoveWindow(rect);//	rect.OffsetRect(-85, 0);	m_pBtnFineTuning->MoveWindow(rect);	rect.OffsetRect(-85, 0);}void RxFrameBottom::OnSwitchToMainMenu(BOOL bActive, int nOldMainMenuID, int nCurMainMenuID){	if(bActive)	{		if(nCurMainMenuID == IDF_TOP_LOAD)		{			m_pStcWindowing->ShowWindow(SW_HIDE);			m_pStcZoom->ShowWindow(SW_HIDE);			m_pStcSeries->ShowWindow(SW_HIDE);			m_pBtnFineTuning->ShowWindow(SW_HIDE);			m_pBtnOptions->ShowWindow(SW_HIDE);			m_pBtnHelp->ShowWindow(SW_HIDE);		}		else if(nCurMainMenuID == IDF_TOP_3DFUSION)		{			m_pStcWindowing->ShowWindow(SW_SHOW);			m_pStcZoom->ShowWindow(SW_SHOW);			m_pStcSeries->ShowWindow(SW_SHOW);			if(m_nRadioSeries != 2)				m_pBtnFineTuning->ShowWindow(SW_SHOW);			if(m_nRadioSeries == 2)				m_pBtnOptions->ShowWindow(SW_SHOW);			m_pBtnHelp->ShowWindow(SW_HIDE);		}		else if(nCurMainMenuID == IDF_TOP_REPORT)		{			m_pStcWindowing->ShowWindow(SW_HIDE);			m_pStcZoom->ShowWindow(SW_HIDE);			m_pStcSeries->ShowWindow(SW_HIDE);			m_pBtnFineTuning->ShowWindow(SW_HIDE);			m_pBtnOptions->ShowWindow(SW_HIDE);			m_pBtnHelp->ShowWindow(SW_HIDE);		}	}}/////////////////////////////////////////////////////////////////////////////BOOL RxFrameBottom::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) {	if(wParam == IDF_BOTTOM_ED_ZOOM)		RxGetActiveWnd()->SendMessage(WM_NOTIFY, wParam, lParam);		return RxFrameWnd::OnNotify(wParam, lParam, pResult);}void RxFrameBottom::OnDeltaposSpinOpacity(NMHDR* pNMHDR, LRESULT* pResult){	NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;	// 胶巧 滚瓢狼 困 肚绰 酒贰甫 喘范绰瘤 牢侥茄促.	if(pNMUpDown->iDelta < 0 )	{		if(pNMUpDown->hdr.idFrom == IDF_BOTTOM_SBC_WIDTH)			m_pEdWindowingWidth->IncreaseEdit();		else if(pNMUpDown->hdr.idFrom == IDF_BOTTOM_SBC_LEVEL)			m_pEdWindowingLevel->IncreaseEdit();	}	else	{		if(pNMUpDown->hdr.idFrom == IDF_BOTTOM_SBC_WIDTH)			m_pEdWindowingWidth->DecreaseEdit();		else if(pNMUpDown->hdr.idFrom == IDF_BOTTOM_SBC_LEVEL)			m_pEdWindowingLevel->DecreaseEdit();	}		*pResult = 0;}void RxFrameBottom::OnEditChanged(NMHDR* pNMHDR, LRESULT* pResult){	NMED_INT	*pNMED = (NMED_INT *)pNMHDR;	switch(pNMED->hdr.idFrom)	{		case IDF_BOTTOM_ED_WIDTH :			UpdateWindowing(FALSE);			break;		case IDF_BOTTOM_ED_LEVEL :			UpdateWindowing(FALSE);			break;	}	*pResult = 0;}void RxFrameBottom::OnPresetWindowingHotChanged(UINT nID){	int		iIndex = (int)(nID - ID_WINDOWING_PRESET_F1);	int		iNewIndex;	switch (RxGetCurMainMenu())	{		case IDF_TOP_3DFUSION :			if(m_nRadioSeries == RXSERIES_REF || m_nRadioSeries == RXSERIES_FLT)			{				if(iIndex >= 0 && iIndex < 12)				{					iNewIndex = m_pPresetWindowing->GetPresetWindowingByHotKey(iIndex);

⌨️ 快捷键说明

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