Ejemplo n.º 1
0
void CSListView::ResetColumns( )
{
	CStockContainer & container = AfxGetSListStockContainer();
	container.Lock();
	
	//  its list control through a call to GetListCtrl().
	CSPDWordArray	& auint = AfxGetProfile().GetSListColumnsShow( );
	ASSERT( auint.GetSize() > 0 );

	m_Grid.SetRedraw( FALSE );

	m_Grid.DeleteAllItems();

	m_Grid.SetRowCount(1);
	m_Grid.SetFixedRowCount(1);
	m_Grid.SetFixedColumnCount(1);
	m_Grid.SetColumnCount(auint.GetSize());

	for( int nCol=0; nCol<auint.GetSize(); nCol++ )
	{
		CString	string	=	AfxGetVariantName(auint[nCol],TRUE);
		m_Grid.SetItemText( 0, nCol, string );
		m_Grid.SetItemData( 0, nCol, auint[nCol] );
		m_Grid.SetItemFormat( 0, nCol, DT_CENTER|DT_VCENTER|DT_SINGLELINE );
		m_Grid.SetItemBkColour( 0, nCol, AfxGetProfile().GetColor(CColorClass::clrSListBK) );
		m_Grid.SetItemFgColour( 0, nCol, AfxGetProfile().GetColor(CColorClass::clrTitle) );
	}

	m_Grid.AutoSizeColumns();

	m_Grid.SetRedraw( TRUE, TRUE );
	m_Grid.Invalidate( );
	
	container.UnLock();
}
Ejemplo n.º 2
0
BOOL CAlarmResultDlg::OnInitDialog() 
{
	CPropertyPageEx::OnInitDialog();
	
	// TODO: Add extra initialization here
	// TODO: Add extra initialization here
	m_list.SendMessage( LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP
						| LVS_EX_FLATSB | LVS_EX_REGIONAL | LVS_EX_INFOTIP | LVS_EX_UNDERLINEHOT );
	m_list.EnableToolTips( );

	// insert columns
	{
		CString strCode = AfxGetVariantName(SLH_CODE,FALSE);
		CString strDiffPercent = AfxGetVariantName(SLH_DIFFPERCENT,FALSE);
		CString strReason;
		strReason.LoadString( IDS_ALARMRESULT_REASON );

		m_list.InsertColumn( 0, strCode, LVCFMT_CENTER, 90 );
		m_list.InsertColumn( 1, strDiffPercent, LVCFMT_CENTER, 110 );
		m_list.InsertColumn( 2, strReason, LVCFMT_CENTER, 220 );
	}

	CAlarmContainer & container = AfxGetAlarmContainer();
	for( int nIndex=0; nIndex<container.GetSize(); nIndex++ )
	{
		ALARM & alarm = container.ElementAt(nIndex);
		CString strCode = alarm.report.m_szCode;
		CString strDiffPercent = "-";
		if( alarm.report.m_fLast > 1e-4 )
			strDiffPercent.Format( ".2f", alarm.report.m_fNew/alarm.report.m_fLast-1 );
		CString strReason = container.GetDescript( alarm );

		int nItem = m_list.InsertItem( nIndex, strCode );
		m_list.SetItemText( nItem, 0, strCode );
		m_list.SetItemText( nItem, 1, strDiffPercent );
		m_list.SetItemText( nItem, 2, strReason );
	}

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
Ejemplo n.º 3
0
void CSListView::RemoveSortSign( )
{
	if( m_nColSort < 0 || m_nColSort >= m_Grid.GetColumnCount() )
		return;

	LPARAM	lParam	=	m_Grid.GetItemData( 0, m_nColSort );
	CString	strColTitle	=	AfxGetVariantName(lParam,TRUE);
	m_Grid.SetItemText( 0, m_nColSort, strColTitle );

	m_nColSort		=	-1;
	m_bSortAscend	=	FALSE;
}
Ejemplo n.º 4
0
int CStock::PrepareBaseInfo( BOOL bReload )
{
	// Load From File
	PrepareData( CStock::dataBasetext, 0, bReload );
	
	// Save To pText
	int nTextLen = m_nBaseTextLen;
	char * pText	=	NULL;
	if( m_pBaseText && nTextLen > 0 )
	{
		pText = new CHAR[nTextLen+1];
		if( pText )	memcpy( pText, m_pBaseText, nTextLen );
		if( pText )	pText[nTextLen] = 0;
	}
	
	int nIntroLen = SLH_MAX * 80;
	if( !AllocBaseTextMem( nIntroLen + m_nBaseTextLen + 10 ) )
		return 0;

	int nCount = 0;
	
	for( int nVariantID = SLH_MIN; nVariantID <= SLH_MAX; nVariantID ++ )
	{
		CSPString	strTemp	=	AfxGetVariantName( nVariantID, TRUE );
		strTemp	+=	": \t";
		strTemp	+=	(LPCTSTR)AfxGetVariantDispString( nVariantID, m_stockinfo, NULL );
		strTemp	+=	STRING_CRLF;

		SP_ASSERT( nCount + strTemp.GetLength() < nIntroLen );
		if( nCount + strTemp.GetLength() < nIntroLen )
		{
			nCount += strTemp.GetLength();
			strcat( m_pBaseText, (LPCTSTR)strTemp );
		}
	}
	
	nCount += strlen(STRING_CRLF);
	strcat( m_pBaseText, STRING_CRLF );
	nCount += strlen(STRING_CRLF);
	strcat( m_pBaseText, STRING_CRLF );
	
	if( pText && nCount + nTextLen < m_nBaseTextLen )
	{
		nCount += nTextLen;
		strcat( m_pBaseText, pText );
	}
	
	if( pText )
		delete [] pText;

	return nCount;
}
Ejemplo n.º 5
0
void CSListView::SetSortSign( )
{
	if( m_nColSort < 0 || m_nColSort >= m_Grid.GetColumnCount() )
		return;

	CString	strPrefix, strColTitle;
	if( m_bSortAscend )
		strPrefix.LoadString( IDS_SLISTVIEW_UP );
	else
		strPrefix.LoadString( IDS_SLISTVIEW_DOWN );

	LPARAM	lParam	=	m_Grid.GetItemData( 0, m_nColSort );
	strColTitle	=	AfxGetVariantName(lParam,TRUE);
	strColTitle	=	strPrefix + strColTitle;
	m_Grid.SetItemText( 0, m_nColSort, strColTitle );	
}
Ejemplo n.º 6
0
BOOL CFilterInfoDlg::InitListInfo( )
{
	m_listInfo.ResetContent();

	CSPDWordArray & anOrder	=	AfxGetProfile().GetSListColumnsOrder();
	for( int i=0; i<anOrder.GetSize(); i++ )
	{
		UINT	nVariantID	=	anOrder.GetAt(i);
		if( SLH_CODE == nVariantID || SLH_NAME == nVariantID
			|| SLH_DATE == nVariantID || SLH_REPORTTYPE == nVariantID
			|| SLH_DATE_BEGIN == nVariantID || SLH_TRADE == nVariantID
			|| SLH_PROVINCE == nVariantID )
			continue;

		CString	strName	=	(LPCTSTR)AfxGetVariantName( nVariantID, TRUE );
		int nItem	=	m_listInfo.AddString( strName );
		m_listInfo.SetItemData( nItem, nVariantID );
	}
	m_listInfo.SetCurSel( 0 );
	return TRUE;
}
Ejemplo n.º 7
0
void CSetColumnDlg::SetListColumnItems( CSPDWordArray & anShow, BOOL bSetDefault )
{
	m_listColumn.DeleteAllItems( );

	CSPDWordArray	& anOrder	= AfxGetProfile().GetSListColumnsOrder( );
	CIndexContainer	& acol	=	AfxGetProfile().GetSListColumnsUser( );

	CString	strDay;
	strDay.LoadString( IDS_SLHHDR_DAY );

	int	nCount	=	0;
	for( int i=0; i<anOrder.GetSize(); i++ )
	{
		// Set Item Text
		CString	strName, strDes;
		int	nItem	=	-1;
		UINT	nID	=	anOrder[i];
		strName	=	AfxGetVariantName( nID, FALSE );
		if( strName.IsEmpty() )
			continue;
		if( nID >= SLH_USERDEFINE_BEGIN )
			strDes.LoadString( IDS_SETCOLUMN_USERDEFINE );
		else
			strDes	=	(LPCTSTR)AfxGetSLHDescript( nID );

		nItem	=	m_listColumn.InsertItem( nCount, strName, -1 );
		m_listColumn.SetItemText( nItem, 1, strDes );
		m_listColumn.SetItemData( nItem, nID );
		nCount	++;

		// SetCheck
		for( int j=0; j<anShow.GetSize(); j++ )
		{
			if( anShow[j] == nID )
			{
				m_listColumn.SetCheck( nItem );
				break;
			}
		}

		// Set Column Combo Text
		CStringArray	astr;
		if( SLH_DIFF == nID || SLH_DIFFPERCENT == nID || SLH_SCOPE == nID
			|| SLH_RATIO_CHANGEHAND == nID || SLH_RATIO_VOLUME == nID || SLH_RS == nID )
		{
			for( int nDays=1; nDays<=STKLIB_DAYS_CALCULATE; nDays ++ )
			{
				CString	strTemp;
				strTemp.Format( "%d%s", nDays, strDay );
				astr.Add( strTemp );
			}
		}
		else if( SLH_ANNGAINS_AVERAGE == nID )
		{
			CString	strTemp;
			strTemp.Format( "%d%s", 20, strDay );		astr.Add( strTemp );
			strTemp.Format( "%d%s", 40, strDay );		astr.Add( strTemp );
			strTemp.Format( "%d%s", 60, strDay );		astr.Add( strTemp );
			strTemp.Format( "%d%s", 120, strDay );		astr.Add( strTemp );
			strTemp.Format( "%d%s", STKLIB_DAYS_INONEYEAR, strDay );			astr.Add( strTemp );
			strTemp.Format( "%d%s", 2*STKLIB_DAYS_INONEYEAR, strDay );		astr.Add( strTemp );
			strTemp.Format( "%d%s", 3*STKLIB_DAYS_INONEYEAR, strDay );		astr.Add( strTemp );
			strTemp.Format( "%d%s", 6*STKLIB_DAYS_INONEYEAR, strDay );		astr.Add( strTemp );
			strTemp.Format( "%d%s", 10*STKLIB_DAYS_INONEYEAR, strDay );		astr.Add( strTemp );
		}
		if( astr.GetSize() > 0 )
			m_listColumn.SetItemStrings( nItem, astr );

		// Set Current Parameter
		CString	strParam;
		if( SLH_DIFF == nID )
		{
			if( bSetDefault )	AfxGetProfile().SetDiffDays( -1 );
			strParam.Format( "%d%s", AfxGetProfile().GetDiffDays(), strDay );
		}
		else if( SLH_DIFFPERCENT == nID )
		{
			if( bSetDefault )	AfxGetProfile().SetDiffPercentDays( -1 );
			strParam.Format( "%d%s", AfxGetProfile().GetDiffPercentDays(), strDay );
		}
		else if( SLH_SCOPE == nID )
		{
			if( bSetDefault )	AfxGetProfile().SetScopeDays( -1 );
			strParam.Format( "%d%s", AfxGetProfile().GetScopeDays(), strDay );
		}
		else if( SLH_RATIO_CHANGEHAND == nID )
		{
			if( bSetDefault )	AfxGetProfile().SetRatioChangeHandDays( -1 );
			strParam.Format( "%d%s", AfxGetProfile().GetRatioChangeHandDays(), strDay );
		}
		else if( SLH_RATIO_VOLUME == nID )
		{
			if( bSetDefault )	AfxGetProfile().SetRatioVolumeDays( -1 );
			strParam.Format( "%d%s", AfxGetProfile().GetRatioVolumeDays( ), strDay );
		}
		else if( SLH_RS == nID )
		{
			if( bSetDefault )	AfxGetProfile().SetRSDays( -1 );
			strParam.Format( "%d%s", AfxGetProfile().GetRSDays( ), strDay );
		}
		else if( SLH_ANNGAINS_AVERAGE == nID )
		{
			if( bSetDefault )	AfxGetProfile().SetYieldAverageDays( -1 );
			strParam.Format( "%d%s", AfxGetProfile().GetYieldAverageDays( ), strDay );
		}
		else if( SLH_ANNGAINS_STDDEV == nID || SLH_BETA == nID || SLH_SHARP == nID )
		{
			strParam.LoadString( IDS_SETCOLUMN_SAMEASYIELDAVERAGE );
		}
		if( strParam.GetLength() > 0 )
			m_listColumn.SetItemText( nItem, 2, strParam );
	}

	m_listColumn.SetComboBoxColumn( 2 );
	m_listColumn.SetItemState( 0, LVIS_SELECTED, LVIS_SELECTED );
}
Ejemplo n.º 8
0
void CFilterInfoDlg::OnAdd() 
{
	UpdateData( );

	int	nSel	=	m_listInfo.GetCurSel();
	if( LB_ERR == nSel )
	{
		AfxMessageBox( IDS_FILTERINFO_NOSELECTEDINFO, MB_OK|MB_ICONINFORMATION );
		return;
	}

	if( ( m_strMoreThan.GetLength()<=0 && m_strLessThan.GetLength()<=0 )
		|| !IsNumber(m_strMoreThan,TRUE) || !IsNumber(m_strLessThan,TRUE) )
	{
		AfxMessageBox( IDS_FILTERINFO_INVALIDCOND, MB_OK|MB_ICONINFORMATION );
		return;
	}

	UINT nVariantID	=	m_listInfo.GetItemData(nSel);
	CString	strCond	=	AfxGetVariantName( nVariantID, TRUE );
	CString	strME, strAnd, strLE;
	strME.LoadString( IDS_FILTERINFO_ME );
	strAnd.LoadString( IDS_FILTERINFO_AND );
	strLE.LoadString( IDS_FILTERINFO_LE );
	strCond	+=	"(";
	if( m_strMoreThan.GetLength() > 0 )
		strCond	+=	strME + m_strMoreThan;
	if( m_strMoreThan.GetLength() > 0 && m_strLessThan.GetLength() > 0 )
		strCond	+=	strAnd;
	if( m_strLessThan.GetLength() > 0 )
		strCond	+=	strLE + m_strLessThan;
	strCond	+=	")";

	for( int i=0; i<m_listCond.GetCount(); i++ )
	{
		FILTERINFO_CONDITION * pCond = (FILTERINFO_CONDITION *)m_listCond.GetItemData(i);
		if( NULL != pCond )
		{
			if( pCond->nVariantID == nVariantID )
			{
				pCond->bHasMoreThan	=	( m_strMoreThan.GetLength()>0 ? TRUE : FALSE );
				pCond->bHasLessThan	=	( m_strLessThan.GetLength()>0 ? TRUE : FALSE );
				pCond->dMoreThan	=	atof(m_strMoreThan);
				pCond->dLessThan	=	atof(m_strLessThan);
				m_listCond.DeleteString( i );
				m_listCond.InsertString( i, strCond );
				m_listCond.SetItemData( i, (DWORD)pCond );
				m_listCond.SetCurSel( i );
				break;
			}
		}
	}
	if( i == m_listCond.GetCount() )
	{
		FILTERINFO_CONDITION * pCond = new FILTERINFO_CONDITION;
		if( pCond )
		{
			pCond->nVariantID	=	nVariantID;
			pCond->bHasMoreThan	=	( m_strMoreThan.GetLength()>0 ? TRUE : FALSE );
			pCond->bHasLessThan	=	( m_strLessThan.GetLength()>0 ? TRUE : FALSE );
			pCond->dMoreThan	=	atof(m_strMoreThan);
			pCond->dLessThan	=	atof(m_strLessThan);
			int nItem	=	m_listCond.AddString( strCond );
			m_listCond.SetItemData( nItem, (DWORD)pCond );
			m_listCond.SetCurSel( nItem );
		}
	}
}
Ejemplo n.º 9
0
void CQuoteTipDlg::OnPaint() 
{
	// Do not call CTipDialog::OnPaint() for painting messages
	// CTipDialog::OnPaint();

	CPaintDC dc(this); // device context for painting
	
	dc.SetBkMode( TRANSPARENT );
	CFont * pOldFont = AfxSelectDCFont(&dc,14);

	CRect rectAll;
	GetClientRect( &rectAll );
	int nWidthTotal = rectAll.Width();
	double o = (nWidthTotal-10) / 26;

	CRect rect;
	int x = 5, y = 5;
	int nCount = 0;
	CStockContainer & container = AfxGetSListStockContainer();

	// Draw Header Title
	{
		CString strCode = AfxGetVariantName(SLH_CODE,FALSE);
		CString strClose = AfxGetVariantName(SLH_CLOSE,FALSE);
		CString strDiffPercent = AfxGetVariantName(SLH_DIFFPERCENT,FALSE);
		CString strVolume = AfxGetVariantName(SLH_VOLUME,FALSE);

		dc.SetTextColor( AfxGetProfile().GetColor(CColorClass::clrTitle) );
		rect = CRect(x,y,x+6*o,y+m_nItemHeight-1);
		dc.DrawText( strCode, rect, DT_VCENTER | DT_CENTER | DT_SINGLELINE | DT_WORD_ELLIPSIS );
		rect = CRect(x+6*o,y,x+13*o,y+m_nItemHeight-1);
		dc.DrawText( strClose, rect, DT_VCENTER | DT_CENTER | DT_SINGLELINE | DT_WORD_ELLIPSIS );
		rect = CRect(x+13*o,y,x+19*o,y+m_nItemHeight-1);
		dc.DrawText( strDiffPercent, rect, DT_VCENTER | DT_CENTER | DT_SINGLELINE | DT_WORD_ELLIPSIS );
		rect = CRect(x+19*o,y,rectAll.right-5,y+m_nItemHeight-1);
		dc.DrawText( strVolume, rect, DT_VCENTER | DT_CENTER | DT_SINGLELINE | DT_WORD_ELLIPSIS );

		y += m_nItemHeight;
	}

	y += 2;

	for( int nIndex=m_nIndexStart; nIndex<container.GetSize(); nIndex++ )
	{
		nCount ++;
		if( nCount > m_nPageCount )
			break;

		CStockInfo & info = container.ElementAt(nIndex);
		CString strCode = AfxGetVariantDispString(SLH_CODE,info,NULL);
		CString strClose = AfxGetVariantDispString(SLH_CLOSE,info,NULL);
		CString strDiffPercent = AfxGetVariantDispString(SLH_DIFFPERCENT,info,NULL);
		CString strVolume = AfxGetVariantDispString(SLH_VOLUME,info,NULL);

		rect = CRect(x,y,x+6*o,y+m_nItemHeight-1);
		dc.SetTextColor( AfxGetVariantColor(SLH_CODE,info) );
		dc.DrawText( strCode, rect, DT_VCENTER | DT_RIGHT | DT_SINGLELINE | DT_WORD_ELLIPSIS );
		rect = CRect(x+6*o,y,x+13*o,y+m_nItemHeight-1);
		dc.SetTextColor( AfxGetVariantColor(SLH_CLOSE,info) );
		dc.DrawText( strClose, rect, DT_VCENTER | DT_RIGHT | DT_SINGLELINE | DT_WORD_ELLIPSIS );
		rect = CRect(x+13*o,y,x+18*o,y+m_nItemHeight-1);
		dc.SetTextColor( AfxGetVariantColor(SLH_DIFFPERCENT,info) );
		dc.DrawText( strDiffPercent, rect, DT_VCENTER | DT_RIGHT | DT_SINGLELINE | DT_WORD_ELLIPSIS );
		rect = CRect(x+18*o,y,rectAll.right-10,y+m_nItemHeight-1);
		dc.SetTextColor( AfxGetVariantColor(SLH_VOLUME,info) );
		dc.DrawText( strVolume, rect, DT_VCENTER | DT_RIGHT | DT_SINGLELINE | DT_WORD_ELLIPSIS );

		y += m_nItemHeight;
	}

	dc.SelectObject(pOldFont);
}