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

📄 setrate.cpp.svn-base

📁 股票软件源码
💻 SVN-BASE
字号:
// SetRate.cpp : implementation file
//

#include "stdafx.h"

#include "SetRate.h"

#include <math.h>

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

/////////////////////////////////////////////////////////////////////////////
// CSetRate property page

IMPLEMENT_DYNCREATE(CSetRate, CPropertyPageEx)

CSetRate::CSetRate() : CPropertyPageEx(CSetRate::IDD)
{
	//{{AFX_DATA_INIT(CSetRate)
	m_strTaxShaa = _T("");
	m_strTaxShab = _T("");
	m_strTaxShafund = _T("");
	m_strTaxSzna = _T("");
	m_strTaxSznb = _T("");
	m_strTaxSznfund = _T("");
	//}}AFX_DATA_INIT
	m_pStrategy	=	NULL;

	m_dwButtonFlags	=	PSWIZB_BACK | PSWIZB_NEXT;
	m_bModified		=	FALSE;
}

CSetRate::CSetRate( UINT nIDCaption, UINT nIDTitle, UINT nIDSubTitle )
		 : CPropertyPageEx(CSetRate::IDD,nIDCaption, nIDTitle, nIDSubTitle)
{
	m_strTaxShaa = _T("");
	m_strTaxShab = _T("");
	m_strTaxShafund = _T("");
	m_strTaxSzna = _T("");
	m_strTaxSznb = _T("");
	m_strTaxSznfund = _T("");

	m_pStrategy	=	NULL;

	m_dwButtonFlags	=	PSWIZB_BACK | PSWIZB_NEXT;
	m_bModified		=	FALSE;
}

CSetRate::~CSetRate()
{
}

void CSetRate::SetStrategy( CStrategy * pStrategy )
{
	m_pStrategy	=	pStrategy;
}

BOOL CSetRate::ValidData( )
{
	if( IsNumber(m_strTaxShaa,FALSE) && IsNumber(m_strTaxShab,FALSE) && IsNumber(m_strTaxShafund,FALSE)
		&& IsNumber(m_strTaxSzna,FALSE) && IsNumber(m_strTaxSznb,FALSE) && IsNumber(m_strTaxSznfund,FALSE) )
	{
		return TRUE;
	}
	AfxMessageBox( IDS_SETRATE_NOTNUMBER, MB_OK | MB_ICONINFORMATION );
	return FALSE;
}

BOOL CSetRate::LoadFromStrategy( )
{
	if( m_pStrategy )
	{
		CRateParam & rate = m_pStrategy->GetRateParam( );

		m_strTaxShaa.Format( "%.4f", rate.m_dShaa );
		m_strTaxShab.Format( "%.4f", rate.m_dShab );
		m_strTaxShafund.Format( "%.4f", rate.m_dShafund );
		m_strTaxSzna.Format( "%.4f", rate.m_dSzna );
		m_strTaxSznb.Format( "%.4f", rate.m_dSznb );
		m_strTaxSznfund.Format( "%.4f", rate.m_dSznfund );

		return TRUE;
	}
	return FALSE;
}

BOOL CSetRate::StoreToStrategy( )
{
	if( m_pStrategy )
	{
		CRateParam & rate = m_pStrategy->GetRateParam( );

		m_bModified		=	(m_bModified || fabs(rate.m_dShaa-atof(m_strTaxShaa)) > 1e-6 );
		m_bModified		=	(m_bModified || fabs(rate.m_dShab-atof(m_strTaxShab)) > 1e-6 );
		m_bModified		=	(m_bModified || fabs(rate.m_dShafund-atof(m_strTaxShafund)) > 1e-6 );
		m_bModified		=	(m_bModified || fabs(rate.m_dSzna-atof(m_strTaxSzna)) > 1e-6 );
		m_bModified		=	(m_bModified || fabs(rate.m_dSznb-atof(m_strTaxSznb)) > 1e-6 );
		m_bModified		=	(m_bModified || fabs(rate.m_dSznfund-atof(m_strTaxSznfund)) > 1e-6 );

		rate.m_dShaa	=	atof(m_strTaxShaa);
		rate.m_dShab	=	atof(m_strTaxShab);
		rate.m_dShafund	=	atof(m_strTaxShafund);
		rate.m_dSzna	=	atof(m_strTaxSzna);
		rate.m_dSznb	=	atof(m_strTaxSznb);
		rate.m_dSznfund	=	atof(m_strTaxSznfund);

		return TRUE;
	}
	return FALSE;
}

void CSetRate::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPageEx::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSetRate)
	DDX_Text(pDX, IDC_TAXSHAA, m_strTaxShaa);
	DDX_Text(pDX, IDC_TAXSHAB, m_strTaxShab);
	DDX_Text(pDX, IDC_TAXSHAFUND, m_strTaxShafund);
	DDX_Text(pDX, IDC_TAXSZNA, m_strTaxSzna);
	DDX_Text(pDX, IDC_TAXSZNB, m_strTaxSznb);
	DDX_Text(pDX, IDC_TAXSZNFUND, m_strTaxSznfund);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSetRate, CPropertyPageEx)
	//{{AFX_MSG_MAP(CSetRate)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSetRate message handlers

BOOL CSetRate::OnInitDialog() 
{
	CPropertyPageEx::OnInitDialog();
	
	// TODO: Add extra initialization here
	ASSERT( m_pStrategy );

	LoadFromStrategy( );

	UpdateData( FALSE );
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

BOOL CSetRate::OnKillActive() 
{
	// TODO: Add your specialized code here and/or call the base class
	UpdateData( );
	if( !ValidData( ) )
		return FALSE;
	StoreToStrategy( );
	return CPropertyPageEx::OnKillActive();
}

LRESULT CSetRate::OnWizardBack() 
{
	// TODO: Add your specialized code here and/or call the base class
	UpdateData( );
	if( !ValidData( ) )
		return -1L;
	StoreToStrategy( );
	return CPropertyPageEx::OnWizardBack();
}

LRESULT CSetRate::OnWizardNext() 
{
	// TODO: Add your specialized code here and/or call the base class
	UpdateData( );
	if( !ValidData( ) )
		return -1L;
	StoreToStrategy( );
	return CPropertyPageEx::OnWizardNext();
}

BOOL CSetRate::OnWizardFinish() 
{
	// Add your specialized code here and/or call the base class
	UpdateData( );
	if( !ValidData( ) )
		return FALSE;
	StoreToStrategy( );
	return CPropertyPageEx::OnWizardFinish();
}

void CSetRate::OnOK() 
{
	// TODO: Add your specialized code here and/or call the base class
	UpdateData( );
	if( !ValidData( ) )
		return;
	StoreToStrategy( );
	CPropertyPageEx::OnOK();
}

BOOL CSetRate::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	if( WM_KEYDOWN == pMsg->message && VK_RETURN == pMsg->wParam )
		return TRUE;
	return CPropertyPageEx::PreTranslateMessage(pMsg);
}

BOOL CSetRate::OnSetActive() 
{
	// TODO: Add your specialized code here and/or call the base class
	CPropertySheetEx * pSheet = DYNAMIC_DOWNCAST( CPropertySheetEx, GetParent()	);
	if( pSheet )
	{
		pSheet->SetWizardButtons( m_dwButtonFlags );
	}
	
	return CPropertyPageEx::OnSetActive();
}

⌨️ 快捷键说明

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