📄 spindlg.cpp
字号:
// SpinDlg.cpp : implementation file
//
#include "stdafx.h"
#include "SpinEditCtrl.h"
#include "SpinDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSpinDlg dialog
CSpinDlg::CSpinDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSpinDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSpinDlg)
m_bNeedText = FALSE;
m_strExtraText = _T("");
m_dbMax = 0.0;
m_dbMin = 0.0;
m_bPos = 0;
m_dbStep = 0.0;
m_nDataType = -1;
//}}AFX_DATA_INIT
}
void CSpinDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSpinDlg)
DDX_Check(pDX, IDC_CHECKTEXT, m_bNeedText);
DDX_Text(pDX, IDC_EDITEXTRATEXT, m_strExtraText);
DDX_Text(pDX, IDC_EDITMAX, m_dbMax);
DDX_Text(pDX, IDC_EDITMIN, m_dbMin);
DDX_Text(pDX, IDC_EDITPOINT, m_bPos);
DDX_Text(pDX, IDC_EDITSTEP, m_dbStep);
DDX_Radio(pDX, IDC_RADIOINT, m_nDataType);
//}}AFX_DATA_MAP
DDX_SpinEditControl(pDX, IDC_SPINEDIT, m_SpinEdit);
}
BEGIN_MESSAGE_MAP(CSpinDlg, CDialog)
//{{AFX_MSG_MAP(CSpinDlg)
ON_BN_CLICKED(IDC_RADIOINT, OnRadioint)
ON_BN_CLICKED(IDC_RADIOFLOAT, OnRadiofloat)
ON_BN_CLICKED(IDC_RADIODOUBLE, OnRadiodouble)
ON_BN_CLICKED(IDC_BTNAPPLYPARAM, OnBtnapplyparam)
ON_BN_CLICKED(IDC_CHECKTEXT, OnChecktext)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSpinDlg message handlers
void CSpinDlg::OnRadioint()
{
m_dbStep = 0;
m_nDataType = SE_INT;
UpdateData( FALSE );
}
void CSpinDlg::OnRadiofloat()
{
m_dbStep = 0;
m_nDataType = SE_FLOAT;
UpdateData( FALSE );
}
void CSpinDlg::OnRadiodouble()
{
m_dbStep = 0;
m_nDataType = SE_DOUBLE;
UpdateData( FALSE );
}
void CSpinDlg::OnBtnapplyparam()
{
UpdateData( TRUE );
if( m_dbMin > m_dbMax )
{
double dbTemp = m_dbMin; m_dbMin = m_dbMax; m_dbMax = dbTemp;
}
if( m_dbStep>(m_dbMax-m_dbMin) )
{
m_dbStep = m_dbMax-m_dbMin;
}
UpdateData( FALSE );
m_SpinEdit.SetParams( m_nDataType,
m_bPos,
m_dbMin,
m_dbMin,
m_dbMin, m_dbMax,
m_dbStep,
m_bNeedText,
m_strExtraText);
}
void CSpinDlg::OnChecktext()
{
UpdateData( TRUE );
if( m_bNeedText )
{
GetDlgItem( IDC_EDITEXTRATEXT )->EnableWindow( TRUE );
}
else
{
GetDlgItem( IDC_EDITEXTRATEXT )->EnableWindow( FALSE );
}
}
BOOL CSpinDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_nDataType = SE_DOUBLE;
m_dbMin = 0;
m_dbMax = 10;
m_dbStep = 0.01;
m_bPos = 2;
m_bNeedText = TRUE;
m_strExtraText = _T("公里/小时");
m_SpinEdit.SetParams( m_nDataType,
m_bPos,
m_dbMin,
m_dbMin,
m_dbMin, m_dbMax,
m_dbStep,
m_bNeedText,
m_strExtraText);
UpdateData( FALSE );
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -