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

📄 profile.cpp

📁 股软 通达信行情接收接口, 包括美元汇率
💻 CPP
📖 第 1 页 / 共 5 页
字号:
#else
	m_aColorRef[clrRise]		=	RGB(234,2,106);
	m_aColorRef[clrFall]		=	RGB(72,138,94);
	m_aColorRef[clrFallEntity]	=	RGB(72,138,94);
#endif
	m_aColorRef[clrPlane]		=	RGB(0,0,0);
	m_aColorRef[clrNewKLine]	=	RGB(247,223,156);
	m_aColorRef[clrCW]			=	RGB(198,190,181);
	m_aColorRef[clrDJ]			=	RGB(198,195,198);
	m_aColorRef[clrTitle]		=	RGB(0,0,0);
	m_aColorRef[clrText]		=	RGB(0,0,0);
	m_aColorRef[clrLine1]		=	RGB(255,128,0);
	m_aColorRef[clrLine2]		=	RGB(62,152,159);
	m_aColorRef[clrLine3]		=	RGB(0,128,0);
	m_aColorRef[clrLine4]		=	RGB(0,255,0);
	m_aColorRef[clrLine5]		=	RGB(128,0,0);
	m_aColorRef[clrLine6]		=	RGB(0,0,128);
}

void CColorClass::SetColorBaroque( )
{
	m_strName	=	colorclass_baroque;

	// set color
	SetColorDefault( );

	m_aColorRef[clrDefault]		=	NDCLR_DEFAULT;
	m_aColorRef[clrWorkspBK]	=	RGB(0,83,123);
	m_aColorRef[clrWorkspText]	=	RGB(71,193,252);
	m_aColorRef[clrSimuBK]		=	RGB(0,83,123);
	m_aColorRef[clrSimuText]	=	RGB(71,193,252);
	m_aColorRef[clrSListBK]		=	RGB(0,83,123);
	m_aColorRef[clrSListSelected]=	RGB(160,193,199);
	m_aColorRef[clrBaseBK]		=	RGB(0,83,123);
	m_aColorRef[clrBaseText]	=	RGB(71,193,252);
	m_aColorRef[clrGraphBK]		=	RGB(0,83,123);

	m_aColorRef[clrBorder]		=	RGB(160,193,199);
#ifdef	CLKLAN_ENGLISH_US
	m_aColorRef[clrRise]		=	RGB(0,255,255);
	m_aColorRef[clrFall]		=	RGB(255,157,191);
	m_aColorRef[clrFallEntity]	=	RGB(255,157,191);
#else
	m_aColorRef[clrRise]		=	RGB(255,157,191);
	m_aColorRef[clrFall]		=	RGB(0,255,255);
	m_aColorRef[clrFallEntity]	=	RGB(0,255,255);
#endif
	m_aColorRef[clrPlane]		=	RGB(71,193,252);
	m_aColorRef[clrNewKLine]	=	RGB(247,223,156);
	m_aColorRef[clrCW]			=	RGB(198,190,181);
	m_aColorRef[clrDJ]			=	RGB(198,195,198);
	m_aColorRef[clrTitle]		=	RGB(255,255,0);
	m_aColorRef[clrText]		=	RGB(71,193,252);
	m_aColorRef[clrLine1]		=	RGB(255,215,74);
	m_aColorRef[clrLine2]		=	RGB(255,255,255);
	m_aColorRef[clrLine3]		=	RGB(0,128,0);
	m_aColorRef[clrLine4]		=	RGB(0,255,0);
	m_aColorRef[clrLine5]		=	RGB(0,0,160);
	m_aColorRef[clrLine6]		=	RGB(0,0,128);
}

BOOL CColorClass::IsSysColorClass( LPCTSTR lpszColorClassName )
{
	if( NULL == lpszColorClassName || strlen(lpszColorClassName) <= 0 )
	{
		SP_ASSERT( FALSE );
		return FALSE;
	}

	CSPString	strName;
	strName	=	colorclass_standard;
	if( 0 == strName.Compare( lpszColorClassName ) )
		return TRUE;
	strName	=	colorclass_byzantinesque;
	if( 0 == strName.Compare( lpszColorClassName ) )
		return TRUE;
	strName	=	colorclass_gothic;
	if( 0 == strName.Compare( lpszColorClassName ) )
		return TRUE;
	strName	=	colorclass_baroque;
	if( 0 == strName.Compare( lpszColorClassName ) )
		return TRUE;
	return FALSE;
}

BOOL CColorClass::IsColorStandard( LPCTSTR lpszColorClassName )
{
	if( NULL == lpszColorClassName || strlen(lpszColorClassName) <= 0 )
	{
		SP_ASSERT( FALSE );
		return FALSE;
	}

	CSPString	strName;
	strName	=	colorclass_standard;
	if( 0 == strName.Compare( lpszColorClassName ) )
		return TRUE;
	return FALSE;
}

BOOL CColorClass::IsColorByzantinesque( LPCTSTR lpszColorClassName )
{
	if( NULL == lpszColorClassName || strlen(lpszColorClassName) <= 0 )
	{
		SP_ASSERT( FALSE );
		return FALSE;
	}

	CSPString	strName;
	strName	=	colorclass_byzantinesque;
	if( 0 == strName.Compare( lpszColorClassName ) )
		return TRUE;
	return FALSE;
}

BOOL CColorClass::IsColorGothic( LPCTSTR lpszColorClassName )
{
	if( NULL == lpszColorClassName || strlen(lpszColorClassName) <= 0 )
	{
		SP_ASSERT( FALSE );
		return FALSE;
	}

	CSPString	strName;
	strName	=	colorclass_gothic;
	if( 0 == strName.Compare( lpszColorClassName ) )
		return TRUE;
	return FALSE;
}

BOOL CColorClass::IsColorBaroque( LPCTSTR lpszColorClassName )
{
	if( NULL == lpszColorClassName || strlen(lpszColorClassName) <= 0 )
	{
		SP_ASSERT( FALSE );
		return FALSE;
	}

	CSPString	strName;
	strName	=	colorclass_baroque;
	if( 0 == strName.Compare( lpszColorClassName ) )
		return TRUE;
	return FALSE;
}

//////////////////////////////////////////////////////////////////////
// class CColorClassContainer

CColorClassContainer::CColorClassContainer( )
{
	CColorClass	cls;
	cls.SetColorDefault();
	Add( cls );
	m_nSelectedColorClass	=	0;
}

CColorClassContainer::CColorClassContainer( CColorClassContainer & src )
{
	*this	=	src;
}

CColorClassContainer::~CColorClassContainer( )
{
	RemoveAll( );
}

CColorClassContainer & CColorClassContainer::operator = ( CColorClassContainer & src )
{
	m_nSelectedColorClass	=	src.m_nSelectedColorClass;

	SetSize( src.GetSize() );
	for( int i=0; i<src.GetSize(); i++ )
	{
		CColorClass cls	=	src.ElementAt(i);
		SetAt( i, cls );
	}
	return *this;
}

void CColorClassContainer::Serialize( CSPArchive & ar )
{
	if( ar.IsStoring() )
	{
		ar << m_nSelectedColorClass;

		ar << GetSize();
		for( int i=0; i<GetSize(); i++ )
			ElementAt(i).Serialize( ar );
	}
	else
	{
		ar >> m_nSelectedColorClass;

		int	size;
		ar >> size;
		SetSize( size );
		for( int i=0; i<size; i++ )
		{
			CColorClass	element;
			element.Serialize( ar );
			SetAt( i, element );
		}
	}
}

int CColorClassContainer::AddColorClass( CColorClass & newColorClass )
{
	if( 0 == newColorClass.GetName().GetLength() )
	{
		SP_ASSERT( FALSE );
		return -1;
	}

	for( int i=0; i<GetSize(); i++ )
	{
		CColorClass & cls = ElementAt(i);
		if( 0 == newColorClass.GetName().CompareNoCase( cls.GetName() ) )
			return -1;
	}
	return Add( newColorClass );
}

BOOL CColorClassContainer::RemoveColorClass( LPCTSTR lpszColorClassName )
{
	if( NULL == lpszColorClassName || strlen(lpszColorClassName) <= 0 )
	{
		SP_ASSERT( FALSE );
		return FALSE;
	}

	for( int i=0; i<GetSize(); i++ )
	{
		CColorClass & cls = ElementAt(i);
		if( 0 == cls.GetName().CompareNoCase( lpszColorClassName ) )
		{
			RemoveAt( i );
			return TRUE;
		}
	}
	return FALSE;
}

BOOL CColorClassContainer::SetColorClass( CColorClass & clrcls )
{
	if( clrcls.GetName().GetLength() <= 0 )
	{
		SP_ASSERT( FALSE );
		return FALSE;
	}

	for( int i=0; i<GetSize(); i++ )
	{
		CColorClass & cls = ElementAt(i);
		if( 0 == cls.GetName().CompareNoCase( clrcls.GetName() ) )
		{
			cls	=	clrcls;
			return TRUE;
		}
	}

	return (-1 != AddColorClass( clrcls ) );
}

BOOL CColorClassContainer::GetColorClass( LPCTSTR lpszColorClassName, CColorClass & clrcls )
{
	if( NULL == lpszColorClassName || strlen(lpszColorClassName) <= 0 )
	{
		SP_ASSERT( FALSE );
		return FALSE;
	}

	for( int i=0; i<GetSize(); i++ )
	{
		CColorClass & cls = ElementAt(i);
		if( 0 == cls.GetName().CompareNoCase( lpszColorClassName ) )
		{
			clrcls	=	cls;
			return TRUE;
		}
	}

	SP_ASSERT( FALSE );
	return FALSE;
}

COLORREF CColorClassContainer::GetColor( int nColorIndex )
{
	SP_ASSERT( m_nSelectedColorClass >= 0 && m_nSelectedColorClass < GetSize() );
	if( m_nSelectedColorClass >= 0 && m_nSelectedColorClass < GetSize() )
		return ElementAt( m_nSelectedColorClass ).GetColor( nColorIndex );
	if( GetSize() > 0 )
		return ElementAt( 0 ).GetColor( nColorIndex );

	SP_ASSERT( FALSE );
	SetContainerDefault( );
	if( m_nSelectedColorClass >= 0 && m_nSelectedColorClass < GetSize() )
		return ElementAt( m_nSelectedColorClass ).GetColor( nColorIndex );
	SP_ASSERT( FALSE );
	return NDCLR_DEFAULT;
}

void CColorClassContainer::SetContainerDefault( )
{
	RemoveAll( );

	m_nSelectedColorClass	=	0;
	CColorClass		cls;
	cls.SetColorStandard( );
	Add( cls );
	cls.SetColorByzantinesque( );
	Add( cls );
	cls.SetColorGothic( );
	Add( cls );
	cls.SetColorBaroque( );
	Add( cls );
}

BOOL CColorClassContainer::SelectColorClass( LPCTSTR lpszColorClassName )
{
	if( NULL == lpszColorClassName || strlen(lpszColorClassName) <= 0 )
	{
		SP_ASSERT( FALSE );
		return FALSE;
	}

	for( int i=0; i<GetSize(); i++ )
	{
		CColorClass & cls = ElementAt(i);
		if( 0 == cls.GetName().CompareNoCase( lpszColorClassName ) )
		{
			m_nSelectedColorClass	=	i;
			return TRUE;
		}
	}

	SP_ASSERT( FALSE );
	return FALSE;
}

int CColorClassContainer::GetSelected( )
{
	return m_nSelectedColorClass;
}


//////////////////////////////////////////////////////////////////////
// CStProfile

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CStProfile::CStProfile()
{
	m_nAccessType		=	0;		// INTERNET_OPEN_TYPE_PRECONFIG
	m_nProxyType		=	3;		// CProxySocket::TypeHTTP
	m_nProxyPort		=	80;		// INTERNET_DEFAULT_HTTP_PORT

	m_nAutoResumeDRLimit	=	11;
	m_nDiffDays				=	-1;
	m_nDiffPercentDays		=	-1;
	m_nScopeDays			=	-1;
	m_nRatioChangeHandDays	=	-1;
	m_nRatioVolumeDays		=	-1;
	m_nRSDays				=	-1;
	m_nYieldAverageDays		=	-1;

	m_nInfoCurrentServer	=	0;

	m_nGraphKFormat			=	CKData::formatOriginal;
	m_nGraphMaindataType	=	CKData::mdtypeClose;
	m_dwAutoResumeDRBegin	=	STKLIB_AUTORESUMEDR_DATEBEGIN;
	m_nAutoResumeDRLimit	=	STKLIB_AUTORESUMEDR_LIMIT;

	m_bAutoSaveKDataMin		=	TRUE;

	m_bNotifyIcon			=	FALSE;

	m_nCacheDays			=	STKLIB_DAYS_CACHE;

	m_nLocalDataVersion		=	20050630;

	// SListView Font And BaseView Font
	memset( &m_lfSListView, 0, sizeof(m_lfSListView) );
	memset( &m_lfBaseView, 0, sizeof(m_lfBaseView) );
}

CStProfile::~CStProfile()
{
}

void CStProfile::StoreProfile( )
{
	Store( GetWorkDirectory() + "profile.set" );
}

void CStProfile::LoadProfile( )
{
	// Color
	m_ColorClassContainer.SetContainerDefault( );

	Load( GetWorkDirectory() + "profile.set" );
}

#define	SF_MAX_PROFILE_LENGTH	0x00080000 

char szProfileMagic[]			=	"MGCDPF";
DWORD	dwProfileVersion		=	0x20050630;

BOOL CStProfile::Load( LPCTSTR lpszFileName )
{
	if( NULL == lpszFileName || strlen(lpszFileName) <= 0 )
		return FALSE;

	CSPFile file;
	if( file.Open( lpszFileName, CSPFile::modeRead ) )
	{
		DWORD dwLen = file.GetLength();
		if( 0 == dwLen || dwLen > SF_MAX_PROFILE_LENGTH )
		{
			file.Close();
			return FALSE;
		}
		
		CSPArchive ar( &file, CSPArchive::load );
		FileSerialize( ar );
		ar.Close();
		file.Close();
		return TRUE;
	}
	return FALSE;
}

BOOL CStProfile::Store( LPCTSTR lpszFileName )
{
	if( NULL == lpszFileName || strlen(lpszFileName) <= 0 )
		return FALSE;

	CSPFile file;
	if( file.Open( lpszFileName, CSPFile::modeCreate | CSPFile::modeWrite ) )
	{
		CSPArchive ar( &file, CSPArchive::store );
		FileSerialize( ar );
		ar.Close();
		file.Close();
		return TRUE;
	}
	return FALSE;
}

void CStProfile::FileSerialize( CSPArchive &ar )
{
	if( ar.IsStoring() )
	{
		ar.WriteString( szProfileMagic );
		ar << dwProfileVersion;

		ar << m_strDefaultServer;
		m_astrDownloadServers.Serialize( ar );
		ar << m_nAccessType;
		ar << m_strProxyAddress;
		ar << m_nProxyPort;

		// Window Placement
		ar << m_strWindowPlacement;

		// Data path
		ar << m_strQianlongPath;

		// Color
		m_ColorClassContainer.Serialize( ar );

		// Last Opened Strategies
		m_astrLastOpenedStrategy.Serialize( ar );
		ar << m_strLastActiveStrategy;

		// Net Info
		ar << m_bNetInfoShow;
		ar << m_strNetInfo;
		ar << m_strNetInfourl;
		ar << m_strLatestver;
	
		// AutoResumeDRLimit
		ar << m_nAutoResumeDRLimit;

		// SList columns
		m_anSListColumnsShow.Serialize( ar );
		m_anSListColumnsOrder.Serialize( ar );
		m_aSListColumnsUser.FileSerialize( ar );

		ar << m_nDiffDays;
		ar << m_nDiffPercentDays;
		ar << m_nScopeDays;
		ar << m_nRatioChangeHandDays;
		ar << m_nRatioVolumeDays;
		ar << m_nRSDays;
		ar << m_nYieldAverageDays;

		// Info View
		ar << m_nInfoCurrentServer;

		// Graph Techs
		m_anGraphTechsShow.Serialize( ar );
		m_anGraphTechsKLine.Serialize( ar );
		m_anGraphTechsAll.Serialize( ar );
		ar << m_nGraphKFormat;
		ar << m_nGraphMaindataType;
		ar << m_dwAutoResumeDRBegin;

		ar.Write( &m_lfSListView, sizeof(m_lfSListView) );
		ar.Write( &m_lfBaseView, sizeof(m_lfBaseView) );

		m_techparameters.Serialize( ar );

		m_aHTMLURLToExplorer.Serialize( ar );

		m_astrProvider.Serialize( ar );
		m_astrDriver.Serialize( ar );

		ar << m_strTrader;
		ar << m_bAutoSaveKDataMin;

		ar << m_nProxyType;
		ar << m_strProxyUser;
		ar << m_strProxyPasswd;

		ar << m_bNotifyIcon;

		ar << m_nCacheDays;

		m_aAlarmCond.Serialize( ar );

		ar << m_nLocalDataVersion;
	}
	else
	{
		TCHAR buffer[64];
		memset( buffer, 0, sizeof(buffer) );
		ar.ReadString( buffer, strlen(szProfileMagic) );
		if( 0 != strncmp( szProfileMagic, buffer, strlen(szProfileMagic) ) )
			return;
				
		ar >> m_dwFileVersion;
		if( m_dwFileVersion > dwProfileVersion )
			return;

⌨️ 快捷键说明

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