cnumrangeedit.cpp

来自「是一个数字编辑器」· C++ 代码 · 共 88 行

CPP
88
字号

#include "StdAfx.h"


#include "CNumRangeEdit.h"

IMPLEMENT_DYNAMIC(CNumRangeEdit,CNumEdit)
BEGIN_MESSAGE_MAP(CNumRangeEdit,CNumEdit)
	//{{AFX_MSG_MAP(CNumRangeEdit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()





CNumRangeEdit::CNumRangeEdit ()
{
}




float CNumRangeEdit::GetMax ()
{

	return m_max;

}

float CNumRangeEdit::GetMin ()
{

	return m_min;

}

void CNumRangeEdit::SetRange (float min, float max)
{

	m_max = max;
	m_min = min;

}

bool CNumRangeEdit::CheckInput (UINT nChar)
{
  
	if (! CNumEdit::CheckInput(nChar) )
		return false;
	if ( isdigit(nChar)) {
		int pos = CharFromPos(GetCaretPos()); 
		CString txt;
		GetWindowText(txt);
		CString input(nChar);
		txt.Insert(pos,input);
		float value = (float )atof(txt);
		if ( value > m_max 
		  || value < m_min )
			return false;
	}
	return true;
  
}

void CNumRangeEdit::SetValue (float x)
{
	if (x > m_max)
	{
		if( m_wrap )
			x = m_min;
		else
			x = m_max;
	}
	else if (x < m_min)
	{
		if( m_wrap )
			x = m_max;
		else
			x = m_min;
	}
	CNumEdit::SetValue(x); 
}

void CNumRangeEdit::SetWrap (bool wrap)
{
	m_wrap = wrap;
}

⌨️ 快捷键说明

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