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

📄 setcolordlg.cpp.svn-base

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

#include "stdafx.h"

#include "SetColorDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSetColorDlg dialog

void OnColorChanged( )
{
	::PostMessage( AfxGetStrategyView()->GetSafeHwnd(), WM_USER_COLORCHANGE, 0, 0 );
	::PostMessage( AfxGetGroupView()->GetSafeHwnd(), WM_USER_COLORCHANGE, 0, 0 );
	::PostMessage( AfxGetTechsView()->GetSafeHwnd(), WM_USER_COLORCHANGE, 0, 0 );
	::PostMessage( AfxGetSimuView()->GetSafeHwnd(), WM_USER_COLORCHANGE, 0, 0 );
	::PostMessage( AfxGetSListView()->GetSafeHwnd(), WM_USER_COLORCHANGE, 0, 0 );
	::PostMessage( AfxGetGraphView()->GetSafeHwnd(), WM_USER_COLORCHANGE, 0, 0 );	
	::PostMessage( AfxGetRealTimeView()->GetSafeHwnd(), WM_USER_COLORCHANGE, 0, 0 );
	::PostMessage( AfxGetMultiSortView()->GetSafeHwnd(), WM_USER_COLORCHANGE, 0, 0 );
	::PostMessage( AfxGetBaseView()->GetSafeHwnd(), WM_USER_COLORCHANGE, 0, 0 );
	::PostMessage( AfxGetSelectorView()->GetSafeHwnd(), WM_USER_COLORCHANGE, 0, 0 );
}

CSetColorDlg::CSetColorDlg(CWnd* pParent /*=NULL*/)
	: CXFDialog(CSetColorDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSetColorDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}

void CSetColorDlg::LoadFromColorClass( CColorClass & cls )
{
	CColorClass	clsDefault;
	if( CColorClass::IsColorStandard( cls.GetName() ) )
		clsDefault.SetColorStandard( );
	else if( CColorClass::IsColorByzantinesque( cls.GetName() ) )
		clsDefault.SetColorByzantinesque( );
	else if( CColorClass::IsColorGothic( cls.GetName() ) )
		clsDefault.SetColorGothic( );
	else if( CColorClass::IsColorBaroque( cls.GetName() ) )
		clsDefault.SetColorBaroque( );
	else
		clsDefault.SetColorDefault( );

	/*
	m_btnWorkspBK.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrWorkspBK );
	m_btnWorkspBK.m_clrSelected	=	cls.GetColor( CColorClass::clrWorkspBK );
	m_btnWorkspBK.Invalidate( );

	m_btnWorkspText.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrWorkspText );
	m_btnWorkspText.m_clrSelected	=	cls.GetColor( CColorClass::clrWorkspText );
	m_btnWorkspText.Invalidate( );

	m_btnSimuBK.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrSimuBK );
	m_btnSimuBK.m_clrSelected	=	cls.GetColor( CColorClass::clrSimuBK );
	m_btnSimuBK.Invalidate( );

	m_btnSimuText.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrSimuText );
	m_btnSimuText.m_clrSelected	=	cls.GetColor( CColorClass::clrSimuText );
	m_btnSimuText.Invalidate( );

	m_btnSListBK.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrSListBK );
	m_btnSListBK.m_clrSelected	=	cls.GetColor( CColorClass::clrSListBK );
	m_btnSListBK.Invalidate( );

	m_btnSListSelected.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrSListSelected );
	m_btnSListSelected.m_clrSelected	=	cls.GetColor( CColorClass::clrSListSelected );
	m_btnSListSelected.Invalidate( );

	m_btnBaseBK.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrBaseBK );
	m_btnBaseBK.m_clrSelected	=	cls.GetColor( CColorClass::clrBaseBK );
	m_btnBaseBK.Invalidate( );

	m_btnBaseText.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrBaseText );
	m_btnBaseText.m_clrSelected	=	cls.GetColor( CColorClass::clrBaseText );
	m_btnBaseText.Invalidate( );

	m_btnGraphBK.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrGraphBK );
	m_btnGraphBK.m_clrSelected	=	cls.GetColor( CColorClass::clrGraphBK );
	m_btnGraphBK.Invalidate( );

	m_btnBorder.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrBorder );
	m_btnBorder.m_clrSelected	=	cls.GetColor( CColorClass::clrBorder );
	m_btnBorder.Invalidate( );

	m_btnRise.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrRise );
	m_btnRise.m_clrSelected	=	cls.GetColor( CColorClass::clrRise );
	m_btnRise.Invalidate( );

	m_btnFall.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrFall );
	m_btnFall.m_clrSelected	=	cls.GetColor( CColorClass::clrFall );
	m_btnFall.Invalidate( );

	m_btnFallEntity.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrFallEntity );
	m_btnFallEntity.m_clrSelected	=	cls.GetColor( CColorClass::clrFallEntity );
	m_btnFallEntity.Invalidate( );

	m_btnPlane.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrPlane );
	m_btnPlane.m_clrSelected	=	cls.GetColor( CColorClass::clrPlane );
	m_btnPlane.Invalidate( );

	m_btnNewKLine.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrNewKLine );
	m_btnNewKLine.m_clrSelected	=	cls.GetColor( CColorClass::clrNewKLine );
	m_btnNewKLine.Invalidate( );

	m_btnCW.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrCW );
	m_btnCW.m_clrSelected	=	cls.GetColor( CColorClass::clrCW );
	m_btnCW.Invalidate( );

	m_btnDJ.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrDJ );
	m_btnDJ.m_clrSelected	=	cls.GetColor( CColorClass::clrDJ );
	m_btnDJ.Invalidate( );

	m_btnTitle.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrTitle );
	m_btnTitle.m_clrSelected	=	cls.GetColor( CColorClass::clrTitle );
	m_btnTitle.Invalidate( );

	m_btnText.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrText );
	m_btnText.m_clrSelected	=	cls.GetColor( CColorClass::clrText );
	m_btnText.Invalidate( );

	m_btnLine1.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrLine1 );
	m_btnLine1.m_clrSelected	=	cls.GetColor( CColorClass::clrLine1 );
	m_btnLine1.Invalidate( );

	m_btnLine2.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrLine2 );
	m_btnLine2.m_clrSelected	=	cls.GetColor( CColorClass::clrLine2 );
	m_btnLine2.Invalidate( );

	m_btnLine3.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrLine3 );
	m_btnLine3.m_clrSelected	=	cls.GetColor( CColorClass::clrLine3 );
	m_btnLine3.Invalidate( );

	m_btnLine4.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrLine4 );
	m_btnLine4.m_clrSelected	=	cls.GetColor( CColorClass::clrLine4 );
	m_btnLine4.Invalidate( );

	m_btnLine5.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrLine5 );
	m_btnLine5.m_clrSelected	=	cls.GetColor( CColorClass::clrLine5 );
	m_btnLine5.Invalidate( );

	m_btnLine6.m_clrDefault	=	clsDefault.GetColor( CColorClass::clrLine6 );
	m_btnLine6.m_clrSelected	=	cls.GetColor( CColorClass::clrLine6 );
	m_btnLine6.Invalidate( );
	*/
}

void CSetColorDlg::StoreToColorClass( CColorClass & cls )
{
	/*
	cls.SetColor( CColorClass::clrWorkspBK, m_btnWorkspBK.m_clrSelected );
	cls.SetColor( CColorClass::clrWorkspText, m_btnWorkspText.m_clrSelected );
	cls.SetColor( CColorClass::clrSimuBK, m_btnSimuBK.m_clrSelected );
	cls.SetColor( CColorClass::clrSimuText, m_btnSimuText.m_clrSelected );
	cls.SetColor( CColorClass::clrSListBK, m_btnSListBK.m_clrSelected );

	cls.SetColor( CColorClass::clrSListSelected, m_btnSListSelected.m_clrSelected );
	cls.SetColor( CColorClass::clrBaseBK, m_btnBaseBK.m_clrSelected );
	cls.SetColor( CColorClass::clrBaseText, m_btnBaseText.m_clrSelected );
	cls.SetColor( CColorClass::clrGraphBK, m_btnGraphBK.m_clrSelected );
	cls.SetColor( CColorClass::clrBorder, m_btnBorder.m_clrSelected );

	cls.SetColor( CColorClass::clrRise, m_btnRise.m_clrSelected );
	cls.SetColor( CColorClass::clrFall, m_btnFall.m_clrSelected );
	cls.SetColor( CColorClass::clrFallEntity, m_btnFallEntity.m_clrSelected );
	cls.SetColor( CColorClass::clrPlane, m_btnPlane.m_clrSelected );
	cls.SetColor( CColorClass::clrNewKLine, m_btnNewKLine.m_clrSelected );

	cls.SetColor( CColorClass::clrCW, m_btnCW.m_clrSelected );
	cls.SetColor( CColorClass::clrDJ, m_btnDJ.m_clrSelected );
	cls.SetColor( CColorClass::clrTitle, m_btnTitle.m_clrSelected );
	cls.SetColor( CColorClass::clrText, m_btnText.m_clrSelected );
	cls.SetColor( CColorClass::clrLine1, m_btnLine1.m_clrSelected );
	
	cls.SetColor( CColorClass::clrLine2, m_btnLine2.m_clrSelected );
	cls.SetColor( CColorClass::clrLine3, m_btnLine3.m_clrSelected );
	cls.SetColor( CColorClass::clrLine4, m_btnLine4.m_clrSelected );
	cls.SetColor( CColorClass::clrLine5, m_btnLine5.m_clrSelected );
	cls.SetColor( CColorClass::clrLine6, m_btnLine6.m_clrSelected );
	*/
}

void CSetColorDlg::DoDataExchange(CDataExchange* pDX)
{
	CXFDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSetColorDlg)
	DDX_Control(pDX, IDCANCEL, m_btnCancel);
	DDX_Control(pDX, IDOK, m_btnOK);
	DDX_Control(pDX, IDC_PREVIEW, m_btnPreview);
	DDX_Control(pDX, IDC_SAVEAS, m_btnSaveAs);
	DDX_Control(pDX, IDC_LINE6, m_btnLine6);
	DDX_Control(pDX, IDC_LINE5, m_btnLine5);
	DDX_Control(pDX, IDC_LINE4, m_btnLine4);
	DDX_Control(pDX, IDC_LINE3, m_btnLine3);
	DDX_Control(pDX, IDC_LINE2, m_btnLine2);
	DDX_Control(pDX, IDC_LINE1, m_btnLine1);
	DDX_Control(pDX, IDC_TEXT, m_btnText);
	DDX_Control(pDX, IDC_TITLE, m_btnTitle);
	DDX_Control(pDX, IDC_DJ, m_btnDJ);
	DDX_Control(pDX, IDC_CW, m_btnCW);
	DDX_Control(pDX, IDC_NEWKLINE, m_btnNewKLine);
	DDX_Control(pDX, IDC_PLANE, m_btnPlane);
	DDX_Control(pDX, IDC_FALLENTITY, m_btnFallEntity);
	DDX_Control(pDX, IDC_FALL, m_btnFall);
	DDX_Control(pDX, IDC_RISE, m_btnRise);
	DDX_Control(pDX, IDC_BORDER, m_btnBorder);
	DDX_Control(pDX, IDC_GRAPHBK, m_btnGraphBK);
	DDX_Control(pDX, IDC_BASETEXT, m_btnBaseText);
	DDX_Control(pDX, IDC_BASEBK, m_btnBaseBK);
	DDX_Control(pDX, IDC_SLISTSELECTED, m_btnSListSelected);
	DDX_Control(pDX, IDC_SLISTBK, m_btnSListBK);
	DDX_Control(pDX, IDC_SIMUTEXT, m_btnSimuText);
	DDX_Control(pDX, IDC_SIMUBK, m_btnSimuBK);
	DDX_Control(pDX, IDC_WORKSPTEXT, m_btnWorkspText);
	DDX_Control(pDX, IDC_WORKSPBK, m_btnWorkspBK);
	DDX_Control(pDX, IDC_DELETE, m_btnDelete);
	DDX_Control(pDX, IDC_COLORCLASS, m_comboColorClass);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSetColorDlg, CXFDialog)
	//{{AFX_MSG_MAP(CSetColorDlg)
	ON_BN_CLICKED(IDC_PREVIEW, OnPreview)
	ON_BN_CLICKED(IDC_SAVEAS, OnSaveas)
	ON_BN_CLICKED(IDC_DELETE, OnDelete)
	ON_CBN_SELCHANGE(IDC_COLORCLASS, OnSelchangeColorclass)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSetColorDlg message handlers

BOOL CSetColorDlg::OnInitDialog() 
{
	CXFDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	CColorClassContainer & container = AfxGetProfile().GetColorClassContainer( );
	for( int i=0; i<container.GetSize(); i++ )
	{
		CColorClass & clr	=	container.ElementAt(i);
		m_comboColorClass.AddString( clr.GetName() );
	}

	m_comboColorClass.SetCurSel( container.GetSelected() );
	OnSelchangeColorclass();

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

void CSetColorDlg::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData();

	CColorClassContainer & container = AfxGetProfile().GetColorClassContainer( );

	CString	strName;
	m_comboColorClass.GetWindowText( strName );
	
	CColorClass cls;
	cls.SetColorDefault();
	cls.SetName( strName );
	StoreToColorClass( cls );
	container.SetColorClass( cls );
	container.SelectColorClass( strName );
	
	CXFDialog::OnOK();

	AfxGetProfile().StoreProfile( );
	OnColorChanged( );
}

void CSetColorDlg::OnCancel() 
{
	// TODO: Add extra cleanup here
	UpdateData();

	CColorClassContainer & container = AfxGetProfile().GetColorClassContainer( );
	container.SetColorClass( m_clsOriginal );
	
	CXFDialog::OnCancel();

	AfxGetProfile().StoreProfile( );
	OnColorChanged( );
}

void CSetColorDlg::OnPreview() 
{
	// TODO: Add your control notification handler code here
	UpdateData();

	CColorClassContainer & container = AfxGetProfile().GetColorClassContainer( );

	CString	strName;
	m_comboColorClass.GetWindowText( strName );
	
	CColorClass cls;
	cls.SetColorDefault();
	cls.SetName( strName );
	StoreToColorClass( cls );
	container.SetColorClass( cls );
	container.SelectColorClass( strName );

	// Preview
	OnColorChanged( );
}

void CSetColorDlg::OnSaveas() 
{
	// TODO: Add your control notification handler code here
	CColorClassContainer & container = AfxGetProfile().GetColorClassContainer( );
	CColorClass	cls;
	cls.SetColorDefault();
	StoreToColorClass( cls );

	while( TRUE )
	{
		CStringDialog	dlg( this, IDS_SETCOLOR_SAVEASTITLE, IDS_SETCOLOR_SAVEASTITLE, NULL );
		if( IDOK != dlg.DoModal() )
			break;

		cls.SetName( dlg.GetStringWant() );
		if( -1 == container.AddColorClass( cls ) )
		{
			AfxMessageBox( IDS_SETCOLOR_COLORCLASSEXIST, MB_OK|MB_ICONINFORMATION );
			continue;
		}
		m_comboColorClass.AddString( cls.GetName() );
		m_comboColorClass.SelectString( 0, cls.GetName() );
		OnSelchangeColorclass( );
		break;
	}
}

void CSetColorDlg::OnDelete() 
{
	// TODO: Add your control notification handler code here
	CString	strName;
	m_comboColorClass.GetWindowText( strName );
	CColorClassContainer & container = AfxGetProfile().GetColorClassContainer( );
	if( CColorClass::IsSysColorClass(strName) || m_comboColorClass.GetCount() <= 1 )
	{
		AfxMessageBox( IDS_SETCOLOR_CANNOTDELETESYS, MB_OK|MB_ICONINFORMATION );
		return;
	}

	if( IDYES == AfxMessageBox( IDS_SETCOLOR_DELETECONFIRM, MB_YESNO ) )
	{
		if( container.RemoveColorClass( strName ) )
		{
			int	nSel	=	m_comboColorClass.GetCurSel();
			m_comboColorClass.DeleteString( nSel );
			if( nSel >= m_comboColorClass.GetCount() )
				nSel	=	0;
			m_strNameCurrent.Empty( );
			m_comboColorClass.SetCurSel( nSel );
			OnSelchangeColorclass( );
		}
	}
}

void CSetColorDlg::OnSelchangeColorclass() 
{
	// TODO: Add your control notification handler code here
	CColorClassContainer & container = AfxGetProfile().GetColorClassContainer( );

	if( m_strNameCurrent.GetLength() > 0 )
	{
		CColorClass cls;
		cls.SetColorDefault();
		cls.SetName( m_strNameCurrent );
		StoreToColorClass( cls );
		VERIFY( container.SetColorClass( cls ) );
	}
	
	CString	strNameNow;
	m_comboColorClass.GetWindowText( strNameNow );
	
	CColorClass	clsNow;
	if( container.GetColorClass( strNameNow, clsNow ) )
	{
		LoadFromColorClass( clsNow );
		m_clsOriginal	=	clsNow;
		m_strNameCurrent	=	strNameNow;
		m_btnDelete.EnableWindow( !CColorClass::IsSysColorClass( strNameNow ) );
	}
}

⌨️ 快捷键说明

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