myslider.cpp

来自「基于VC6.0开发的Slider控件使用,适合初学者」· C++ 代码 · 共 100 行

CPP
100
字号
// MySlider.cpp : implementation file
//

#include "stdafx.h"
#include "Slider.h"
#include "MySlider.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMySlider

CMySlider::CMySlider()
{
}

CMySlider::~CMySlider()
{
}

BEGIN_MESSAGE_MAP(CMySlider, CSliderCtrl)
	//{{AFX_MSG_MAP(CMySlider)
	ON_WM_LBUTTONDOWN()
	ON_WM_KEYDOWN()
	ON_WM_MOUSEWHEEL()
	ON_WM_MOUSEMOVE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMySlider message handlers

void CMySlider::OnMouseMove(UINT nFlags, CPoint point) 
{
	int m_iPos;
	CString szTemp;
	m_iPos = GetPos();
	szTemp.Format("%d",m_iPos);
	m_pWnd->SetWindowText(szTemp);

	CWnd::OnMouseMove(nFlags, point);
}

BOOL CMySlider::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) 
{
	int m_iPos;
	CString szTemp;
	m_iPos = GetPos();
	szTemp.Format("%d",m_iPos);
	m_pWnd->SetWindowText(szTemp);

	return CWnd::OnMouseWheel(nFlags, zDelta, pt);
}

void CMySlider::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	int m_iPos;
	CString szTemp;
	m_iPos = GetPos();
	szTemp.Format("%d",m_iPos);
	m_pWnd->SetWindowText(szTemp);
	
	CWnd::OnKeyDown(nChar, nRepCnt, nFlags);
}

void CMySlider::OnLButtonDown(UINT nFlags, CPoint point) 
{
	int m_iPos,m_iMin,m_iMax;
	float m_fPix;
	CString szTemp;
	CRect rcClient;
	GetClientRect(rcClient);
	m_iMin = GetRangeMin();
	m_iMax = GetRangeMax();
	if(point.x > 80)
	{
		m_fPix = (float)(rcClient.Width()-20)/(m_iMax-m_iMin);
	}
	else
	{
		m_fPix = (float)(rcClient.Width())/(m_iMax-m_iMin);
	}

	m_iPos =(int)((float)(point.x-rcClient.left-10)/m_fPix);
	if(m_iPos > m_iMax )
		m_iPos = m_iMax;	
	else if( m_iPos < m_iMin )
		m_iPos = m_iMin;

	SetPos(m_iPos);
	szTemp.Format("%d",m_iPos);
	m_pWnd->SetWindowText(szTemp);

	CWnd::OnLButtonDown(nFlags, point);
}

⌨️ 快捷键说明

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