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

📄 cnumspinedit.cpp

📁 是一个数字编辑器
💻 CPP
字号:
#include "StdAfx.h"
#include "CNumSpinEdit.h"
#include "CNumRangeEdit.h"
#include "CSpin.h"
IMPLEMENT_DYNAMIC(CNumSpinEdit,CWnd  )
BEGIN_MESSAGE_MAP(CNumSpinEdit ,CWnd)
	//{{AFX_MSG_MAP(CNumSpinEdit )
	//}}AFX_MSG_MAP
	ON_WM_CREATE()
	ON_WM_SIZE()
	ON_WM_KEYDOWN()
	ON_WM_SETFOCUS()
	ON_WM_CTLCOLOR()
END_MESSAGE_MAP()

// Class CNumSpinEdit 
CNumSpinEdit::CNumSpinEdit ()
{
	m_spin = new CSpin();
	m_edit = new CNumRangeEdit();
}


CNumSpinEdit::~CNumSpinEdit ()
{
	delete m_spin;
	delete m_edit;
}

int CNumSpinEdit::OnCreate (LPCREATESTRUCT lpCreateStruct)
{
	CWnd::OnCreate(lpCreateStruct);
	int cx = lpCreateStruct->cx;
	int cy = lpCreateStruct->cy;
	int x = lpCreateStruct->x;
	int y = lpCreateStruct->y;
	
	int v = m_edit->Create(WS_CHILD|WS_CLIPSIBLINGS|WS_VISIBLE| ES_AUTOHSCROLL |ES_RIGHT,CRect(x,y,cx-15,cy),this,1);
	m_spin->Create(WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS|UDS_ARROWKEYS,CRect(x+cx,y,15,y+cy),this,2);
	m_spin->SetBuddy(m_edit);
	return 0;
}

void CNumSpinEdit::OnSize (UINT nType, int cx, int cy)
{
	CWnd::OnSize(nType,cx,cy);
	if ( cx < 60 )
	{
		m_edit->MoveWindow(0,0,cx,cy);
		m_spin->MoveWindow(cx-15,0,0,cy);
	}
	else {
		m_edit->MoveWindow(0,0,cx-15,cy);
		m_spin->MoveWindow(cx-15,0,15,cy);
	}
}

void CNumSpinEdit::OnKeyDown (UINT nChar, UINT nRepCnt, UINT flags)
{
	switch ( nChar) {
	case VK_PRIOR :	 
				m_spin->Change(10);
				break;
	case VK_NEXT :	
				m_spin->Change(-10);
				break;
	default :
		CWnd::OnKeyDown(nChar,nRepCnt,flags);
	}
}

CSpin* CNumSpinEdit::GetSpinner ()
{
	return m_spin;
}

CNumRangeEdit* CNumSpinEdit::GetEdit ()
{
	return m_edit;
}

void CNumSpinEdit::OnSetFocus (CWnd* pOldWnd)
{
	m_edit->SetFocus();
}

BOOL CNumSpinEdit::PreTranslateMessage (MSG* pMsg)
{
	if ( pMsg->message == WM_KEYDOWN  )
		if (pMsg->wParam == VK_PRIOR  || pMsg->wParam == VK_NEXT ) {
			OnKeyDown(pMsg->wParam , LOWORD(pMsg->lParam), HIWORD(pMsg->lParam));
			return TRUE;
		}
	return FALSE;
}

void CNumSpinEdit::SetDigits (int no)
{
	ASSERT(m_edit);
	m_edit->SetDigits(no);
}

void CNumSpinEdit::SetRange (float min, float max, bool wrap)
{
	ASSERT(m_edit);
	m_edit->SetRange(min,max);
	m_edit->SetWrap(wrap);
	m_spin->SetRange((int)min,(int)max);
}

void CNumSpinEdit::SetStepSize (float dx)
{

	ASSERT(m_spin);
	m_spin->SetDelta(dx);

}

void CNumSpinEdit::SetFont (CFont* pFont, BOOL bRedraw)
{

	m_edit->SetFont(pFont,bRedraw);

}

HBRUSH CNumSpinEdit::OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	HBRUSH brush;
	brush = CWnd::OnCtlColor (pDC,pWnd,nCtlColor);
	
	if (pWnd == m_edit)
		pDC->SetTextColor(textColor);
	
	return brush ;
}

void CNumSpinEdit::SetTextColor (int r, int b, int g)
{
	textColor = RGB(r,g,b);
}

float CNumSpinEdit::GetValue ()
{
	return m_edit->GetValue();
}

void CNumSpinEdit::SetValue (float val)
{
	m_edit->SetValue(val);
}

⌨️ 快捷键说明

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