BOOL AfxShowStockRealTime( int nStockIndex, BOOL bFromSList );
BOOL AfxShowStockRealTime( const char * szCode );
BOOL AfxShowStockGraph( int nStockIndex, BOOL bFromSList );
BOOL AfxShowStockGraph( const char * szCode );
BOOL AfxShowStockBase( int nStockIndex, BOOL bFromSList );
BOOL AfxShowStockInfo( int nStockIndex, BOOL bFromSList );
BOOL AfxShowStockTech( UINT nTech );
BOOL AfxShowStockRealTime( const char * szCode )
{
//得到CRealTimeView 的对象
CRealTimeView * pView = AfxGetRealTimeView();
if( pView )
{
改变画图模式 分时价格线
pView->ChangeDrawMode( CRealTime::modePriceLine );
画线
pView->ShowMultiStock( 1 );
文档更新所有视图
AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_REALTIMEVIEW, NULL );
切换并显示视图
AfxSwitchToStaticView( RUNTIME_CLASS(CRealTimeView) );
}
else
{
切换并显示视图
AfxSwitchToStaticView( RUNTIME_CLASS(CRealTimeView) );
pView = AfxGetRealTimeView();
if( pView )
{
pView->ChangeDrawMode( CRealTime::modePriceLine );
pView->ShowMultiStock( 1 );
}
}
return TRUE;
}
CRealTimeView * AfxGetRealTimeView( )
{
得到文档类对象,返回CRealTimeView 类对象。
CNineDoc * pNineDoc = AfxGetStaticDoc();
return (CRealTimeView *)( pNineDoc->GetViewIfExist(RUNTIME_CLASS(CRealTimeView)) );
}
BOOL AfxShowStockGraph( const char * szCode )
{
文档更新所有视图
AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_GRAPHVIEW, NULL );
AfxSwitchToStaticView( RUNTIME_CLASS(CGraphView) );
return TRUE;
}
判断视图是否存在,并返回视图。
CView * CNineDoc::GetViewIfExist( CRuntimeClass *pViewClass )
{
POSITION pos = GetFirstViewPosition( );
CView * pView = NULL;
while( pView = GetNextView(pos) )
{
if( pView && pView->IsKindOf( pViewClass ) )
{
return pView;
}
}
return NULL;
}
文档更新所有视图核心代码
void CDocument::UpdateAllViews(CView* pSender, LPARAM lHint, CObject* pHint)
{
POSITION pos = GetFirstViewPosition();
while (pos != NULL)
{
CView* pView = GetNextView(pos);
pView->OnUpdate(pSender, lHint, pHint);
}
}