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

📄 editfloat.cpp

📁 3D reconstruction, medical image processing from colons, using intel image processing for based clas
💻 CPP
字号:
// EditFloat.cpp : implementation file//#include "stdafx.h"#include "fusion.h"#include "EditFloat.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// RxEditFloatRxEditFloat::RxEditFloat(){	m_nDecimalPoint	= 2;	m_fRangeMin		= 0.0f;	m_fRangeMax		= 1.0f;}RxEditFloat::~RxEditFloat(){}BEGIN_MESSAGE_MAP(RxEditFloat, CEdit)	//{{AFX_MSG_MAP(RxEditFloat)	ON_WM_CHAR()	ON_WM_MOUSEWHEEL()	ON_WM_KILLFOCUS()	//}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// RxEditFloat message handlersBOOL RxEditFloat::PreTranslateMessage(MSG* pMsg) {	if(pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)	{		ValidateEdit();		SendMessageToOwner();		return TRUE;	}		return CEdit::PreTranslateMessage(pMsg);}void RxEditFloat::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) {	CString		strHolder;	strHolder = _T("0123456789-.\b");	if(strHolder.Find(nChar) < 0)		return;		CEdit::OnChar(nChar, nRepCnt, nFlags);}BOOL RxEditFloat::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) {	if(zDelta >= 0)		IncreaseEdit();	else		DecreaseEdit();	return CEdit::OnMouseWheel(nFlags, zDelta, pt);}void RxEditFloat::OnKillFocus(CWnd* pNewWnd) {	CEdit::OnKillFocus(pNewWnd);		ValidateEdit();	SendMessageToOwner();	}/////////////////////////////////////////////////////////////////////////////void RxEditFloat::SendMessageToOwner(){	NMED_FLOAT		nmed;	nmed.hdr.hwndFrom	= m_hWnd;	nmed.hdr.idFrom		= GetDlgCtrlID();	nmed.hdr.code		= EN_CHANGED_FLOAT;	nmed.fEdit			= GetEdit();    CWnd* pOwner = GetOwner();    if (pOwner)        pOwner->SendMessage(WM_NOTIFY, nmed.hdr.idFrom, (LPARAM)&nmed);}void RxEditFloat::ValidateEdit(){	float		fValue = GetEdit();	if(fValue < m_fRangeMin)	fValue = m_fRangeMin;	if(fValue > m_fRangeMax)	fValue = m_fRangeMax;	CString		strWindow, strFormat;	strFormat.Format(_T("%d"), m_nDecimalPoint);	strFormat = _T("%.") + strFormat + _T("f"); 	strWindow.Format(strFormat, fValue);	SetWindowText(strWindow);	UpdateWindow();}#include <math.h>void RxEditFloat::IncreaseEdit(int nValue){	float	fStep = (float)nValue / (float)pow(10, m_nDecimalPoint);	float	fOldValue, fNewValue;	fOldValue = GetEdit();	SetEdit(fOldValue + fStep);	fNewValue = GetEdit();	if(fOldValue != fNewValue)		SendMessageToOwner();}void RxEditFloat::DecreaseEdit(int nValue){	float	fStep = (float)nValue / (float)pow(10, m_nDecimalPoint);	float	fOldValue, fNewValue;	fOldValue = GetEdit();	SetEdit(fOldValue - fStep);	fNewValue = GetEdit();	if(fOldValue != fNewValue)		SendMessageToOwner();}/////////////////////////////////////////////////////////////////////////////void RxEditFloat::SetDecimalPoint(UINT nDecimalPoint){	m_nDecimalPoint = nDecimalPoint;}UINT RxEditFloat::GetDecimalPoint(){	return m_nDecimalPoint;}void RxEditFloat::SetRange(float fRangeMin, float fRangeMax, UINT nMask){	float	fValue = GetEdit();	if(nMask & EMASK_MIN)	{		m_fRangeMin = fRangeMin;		if(fValue < fRangeMin)		SetEdit(fRangeMin);	}	if(nMask & EMASK_MAX)	{		m_fRangeMax = fRangeMax;		if(fValue > fRangeMax)		SetEdit(fRangeMax);	}}void RxEditFloat::GetRange(float &fRangeMin, float &fRangeMax){	fRangeMin = m_fRangeMin;	fRangeMax = m_fRangeMax;}void RxEditFloat::SetEdit(float fValue){	float	fOldValue = GetEdit();	if(fOldValue == fValue)		return;	if(fValue < m_fRangeMin)	fValue = m_fRangeMin;	if(fValue > m_fRangeMax)	fValue = m_fRangeMax;	CString		strWindow, strFormat;	strFormat.Format(_T("%d"), m_nDecimalPoint);	strFormat = _T("%.") + strFormat + _T("f"); 	strWindow.Format(strFormat, fValue);	SetWindowText(strWindow);	UpdateWindow();}float RxEditFloat::GetEdit(){	USES_CONVERSION;	float		fReturn;	CString		strWindow;	GetWindowText(strWindow);	if(strWindow.IsEmpty())		fReturn = -1.0f;	else		fReturn = (float)atof(T2A(strWindow));	return fReturn;}

⌨️ 快捷键说明

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