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

📄 selectorview.cpp.svn-base

📁 股票软件源码
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
			if( 0 == nCol )
				m_Grid.SetItemText( nRow, nCol, AfxGetVariantDispString( SLH_CODE, info, &m_container ) );
			else if( 1 == nCol )
				m_Grid.SetItemText( nRow, nCol, AfxGetVariantDispString( SLH_NAME, info, &m_container ) );
			else if( 2 == nCol )
				m_Grid.SetItemText( nRow, nCol, AfxGetVariantDispString( SLH_DATE, info, &m_container ) );
			else if( 3 == nCol )
				m_Grid.SetItemText( nRow, nCol, AfxGetVariantDispString( SLH_CLOSE, info, &m_container ) );
			else if( 4 == nCol )
				m_Grid.SetItemText( nRow, nCol, AfxGetIntensityString( m_signals.GetAt(i) ) );
			else if( 5 == nCol && i<m_reasons.GetSize() )
				m_Grid.SetItemText( nRow, nCol, AfxGetIntensityCodeString( m_reasons.GetAt(i) ) );
			m_Grid.SetItemBkColour( nRow, nCol, AfxGetProfile().GetColor(CColorClass::clrSListBK) );
			if( 4 == nCol )
				m_Grid.SetItemFgColour( nRow, nCol, ((int)m_signals[i]) > 0 ? AfxGetProfile().GetColor(CColorClass::clrRise) : AfxGetProfile().GetColor(CColorClass::clrFall) );
			else
				m_Grid.SetItemFgColour( nRow, nCol, AfxGetProfile().GetColor(CColorClass::clrText) );
		}

		if( i == nPageCount+5 )
		{
			m_Grid.Invalidate( );
			MSG		msg;
			while (::PeekMessage(&msg, NULL, NULL, NULL, PM_NOREMOVE) )
				AfxGetApp()->PumpMessage();
		}
		if( pMainFrame )
			pMainFrame->SetProgress( 100*i/m_container.GetSize() );
	}

	if( pMainFrame )
	{
		pMainFrame->SetProgress( 100 );
		pMainFrame->HideProgressBar( );
		pMainFrame->SetMessageText( IDS_MAINFRAME_FINISHED );
	}

	m_Grid.Invalidate( );
}

/////////////////////////////////////////////////////////////////////////////
// CSelectorView printing

BOOL CSelectorView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CSelectorView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
	if( ::IsWindow( m_Grid.GetSafeHwnd() ) )
		m_Grid.OnBeginPrinting(pDC, pInfo);
}

void CSelectorView::OnPrint(CDC* pDC, CPrintInfo* pInfo) 
{
	if( ::IsWindow( m_Grid.GetSafeHwnd() ) )
		m_Grid.OnPrint(pDC, pInfo);
}

void CSelectorView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)
{
	if( ::IsWindow( m_Grid.GetSafeHwnd() ) )
		m_Grid.OnEndPrinting(pDC, pInfo);
}

void CSelectorView::OnFilePrint() 
{
	if( ::IsWindow( m_Grid.GetSafeHwnd() ) )
		m_Grid.Print( );
}

void CSelectorView::OnUpdateFilePrint(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable( ::IsWindow( m_Grid.GetSafeHwnd() ) );
}

/////////////////////////////////////////////////////////////////////////////
// CSelectorView diagnostics

#ifdef _DEBUG
void CSelectorView::AssertValid() const
{
	CFormView::AssertValid();
}

void CSelectorView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CSelectorView message handlers

int CSelectorView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CFormView::OnCreate(lpCreateStruct) == -1)
		return -1;

	return 0;
}

void CSelectorView::OnDestroy() 
{
	CFormView::OnDestroy();
}

void CSelectorView::OnTimer(UINT nIDEvent) 
{
	CFormView::OnTimer(nIDEvent);
}

void CSelectorView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) 
{
	// TODO: Add your specialized code here and/or call the base class
	if( bActivate && m_bShouldUpdate )
	{
		OnUpdate( NULL, UPDATE_HINT_SELECTORVIEW, NULL );
		m_bShouldUpdate	=	FALSE;
	}

	CFormView::OnActivateView(bActivate, pActivateView, pDeactiveView);
}

LRESULT CSelectorView::OnGetViewTitle(WPARAM wParam, LPARAM lParam)
{
	CString	strTitle;
	strTitle.LoadString( IDS_TITLE_SELECTORVIEW );

	lstrcpyn((LPTSTR)lParam, (LPCTSTR)strTitle, wParam);
	if ((int)wParam > strTitle.GetLength())
		wParam = strTitle.GetLength();
	return wParam;
}

LRESULT CSelectorView::OnGetViewCmdid(WPARAM wParam, LPARAM lParam)
{
	if( lParam )
		*((LPARAM *)lParam)	=	ID_VIEW_SELECTOR;
	return 0L;
}

LRESULT CSelectorView::OnCanCloseView(WPARAM wParam, LPARAM lParam)
{
	if( lParam )
		*((BOOL *)lParam)	=	!m_bRunning;

	return 0L;
}

LRESULT CSelectorView::OnColorChange(WPARAM wParam, LPARAM lParam)
{
	m_Grid.SetBkColor( AfxGetProfile().GetColor(CColorClass::clrSListBK) );
	m_Grid.SetTextBkColor( AfxGetProfile().GetColor(CColorClass::clrSListBK) );
	m_Grid.SetSelectedBkColor(AfxGetProfile().GetColor(CColorClass::clrSListSelected));

	OnUpdate( NULL, UPDATE_HINT_SELECTORVIEW, NULL );
	Invalidate();
	return 0L;
}

BOOL CSelectorView::OnEraseBkgnd(CDC* pDC) 
{
	// TODO: Add your message handler code here and/or call default
	if( pDC && pDC->IsKindOf(RUNTIME_CLASS(CDC)) )
	{
		CRect rect;
		GetClientRect( &rect );
		CBrush brush;
		brush.CreateSolidBrush( AfxGetProfile().GetColor(CColorClass::clrSimuBK) );
		pDC->FillRect( &rect, &brush );
		return TRUE;
	}
	return CFormView::OnEraseBkgnd(pDC);
}

void CSelectorView::OnSize(UINT nType, int cx, int cy) 
{
	CSize	sizeTotal( cx, cy );
	SetScaleToFitSize( sizeTotal );

	CFormView::OnSize(nType, cx, cy);
}

void CSelectorView::OnSetFocus(CWnd* pOldWnd) 
{
	CFormView::OnSetFocus(pOldWnd);
	
	// TODO: Add your message handler code here
	m_Grid.SetFocus();
	if( !m_Grid.GetFocusCell().IsValid()
		&& m_Grid.GetRowCount() > 1 && m_Grid.GetColumnCount() > 1 )
	{
		m_Grid.SetFocusCell( 1, 1 );
		for( int nCol=0; nCol<m_Grid.GetColumnCount(); nCol ++ )
			m_Grid.SetItemState(1,nCol,m_Grid.GetItemState(1,nCol) | GVIS_SELECTED);
	}
}

HBRUSH CSelectorView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	if( pDC )
		pDC->SetTextColor( AfxGetProfile().GetColor( CColorClass::clrSimuText ) );
	if( nCtlColor == CTLCOLOR_DLG
		|| nCtlColor == CTLCOLOR_STATIC
		|| nCtlColor == CTLCOLOR_MSGBOX )
	{
		if( nCtlColor == CTLCOLOR_STATIC )
			pDC->SetBkMode( TRANSPARENT );

		static CBrush brushBK;
		static COLORREF	clrBKLast	=	RGB(255,255,255);
		COLORREF	clrBKNow	=	AfxGetProfile().GetColor( CColorClass::clrSimuBK );
		if( NULL == brushBK.GetSafeHandle() || clrBKLast != clrBKNow )
		{
			brushBK.DeleteObject( );
			VERIFY( brushBK.CreateSolidBrush( clrBKNow ) );
		}
		clrBKLast	=	clrBKNow;
		return (HBRUSH)brushBK.GetSafeHandle();
	}
	return CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
}

void CSelectorView::OnRunselector() 
{
	m_bRunning	=	TRUE;

	// clear
	m_btnRunSelector.EnableWindow( FALSE );
	m_staticInfo.SetWindowPos( NULL, 0, 0, 0, 0, SWP_HIDEWINDOW | SWP_NOMOVE | SWP_NOSIZE );

	m_container.Clear();
	m_signals.RemoveAll();
	m_reasons.RemoveAll();
	OnUpdate( NULL, UPDATE_HINT_SELECTORVIEW, NULL );

	// get parameters
	CStockContainer cntn;
	cntn.RetrieveFromStatic( m_cmbStockGroup.GetCurSelType(), m_cmbStockGroup.GetCurSelName(), NULL, -1 );
	int nKType = m_cmbKType.GetSelect();
	int nTech = m_cmbTech.GetSelect();

	// progress
	m_progress.SetWindowPos( NULL, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOMOVE | SWP_NOSIZE );
	m_progress.SetRange( 0, cntn.GetSize() );
	m_progress.SetPos( 0 );

	// run selector
	for( int i=0; i<cntn.GetSize(); i++ )
	{
		m_progress.SetPos( i+1 );
		MSG		msg;
		while (::PeekMessage(&msg, NULL, NULL, NULL, PM_NOREMOVE) )
			AfxGetApp()->PumpMessage();

		CStockInfo & info = cntn.ElementAt(i);
		int		its		= ITS_NOTHING;
		UINT	itsc	= ITSC_NOTHING;

		CStock	stock;
		if( !stock.SetStockInfo( &info ) )
			continue;
		if( !AfxPrepareStockData( &AfxGetDB(), stock, nKType, CKData::formatXDRdown, AfxGetProfile().GetGraphMaindataType(), FALSE, FALSE ) )
			continue;
		CKData & kdata = stock.GetKData( nKType );
		if( kdata.GetSize() < 1 )
			continue;
		CTechnique * pTech	=	CTechnique::CreateTechnique( nTech, &kdata );
		if( NULL == pTech )
			continue;
		AfxGetProfile().GetTechParameters().FindParameters( nTech, pTech );
		its = pTech->GetSignal( kdata.GetSize()-1, &itsc );
		if( ITS_NOTHING != its )
		{
			m_container.Add( info );
			m_signals.Add( its );
			m_reasons.Add( itsc );
		}
		delete pTech;
	}

	// display result
	OnUpdate( NULL, UPDATE_HINT_SELECTORVIEW, NULL );
	if( 0 == m_container.GetSize() )
		m_staticInfo.SetWindowPos( NULL, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOMOVE | SWP_NOSIZE );

	m_btnRunSelector.EnableWindow( TRUE );

	m_bRunning	=	FALSE;
}

⌨️ 快捷键说明

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