📄 mainfrm.cpp.svn-base
字号:
{
pCmdUI->SetCheck(m_wndMainBar.IsTextLabelVisible());
}
void CMainFrame::OnViewFullscreen()
{
int nHeight = 0; //GetSystemMetrics(SM_CYMENU);
if (m_fullScreen.bFullScreen)
{
m_fullScreen.bFullScreen = FALSE;
if (m_fullScreen.bMaximized)
{
MoveWindow( -GetSystemMetrics(SM_CXFRAME),
-GetSystemMetrics(SM_CYFRAME)-nHeight,
GetSystemMetrics(SM_CXSCREEN) + 2*GetSystemMetrics(SM_CXFRAME),
GetSystemMetrics(SM_CYSCREEN) + 2*GetSystemMetrics(SM_CYFRAME) + nHeight);
}
else
SendMessage(WM_SYSCOMMAND, SC_RESTORE);
if (m_fullScreen.bMainBar && !m_wndMainBar.IsWindowVisible())
OnBarCheck(IDW_MAINBAR);
if (m_fullScreen.bSListBar && !m_wndSListBar.IsWindowVisible())
OnBarCheck(IDW_SLISTBAR);
if (m_fullScreen.bSimuBar && !m_wndSimuBar.IsWindowVisible())
OnBarCheck(IDW_SIMUBAR);
if (m_fullScreen.bStatusBar && !m_wndStatusBar.IsWindowVisible())
OnBarCheck(AFX_IDW_STATUS_BAR);
if (m_fullScreen.bWorkspBar && !m_wndWorkspBar.IsWindowVisible())
OnToggleWorkspBar();
memset(&m_fullScreen, 0, sizeof(m_fullScreen));
}
else
{
m_fullScreen.bFullScreen = TRUE;
m_fullScreen.bMaximized = IsZoomed();
if (m_wndStatusBar.IsWindowVisible())
{
m_fullScreen.bStatusBar = 1;
OnBarCheck(AFX_IDW_STATUS_BAR);
}
if (m_wndWorkspBar.IsWindowVisible())
{
m_fullScreen.bWorkspBar = 1;
OnToggleWorkspBar();
}
if (!m_fullScreen.bMaximized)
SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE);
else
MoveWindow( -GetSystemMetrics(SM_CXFRAME),
-GetSystemMetrics(SM_CYFRAME) - GetSystemMetrics(SM_CYCAPTION) - nHeight,
GetSystemMetrics(SM_CXSCREEN) + 2*GetSystemMetrics(SM_CXFRAME),
GetSystemMetrics(SM_CYSCREEN) + 2*GetSystemMetrics(SM_CYFRAME) + GetSystemMetrics(SM_CYCAPTION) + nHeight);
}
}
void CMainFrame::OnUpdateViewFullscreen(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_fullScreen.bFullScreen);
}
void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
CMDIFrameWnd::OnGetMinMaxInfo(lpMMI);
if (m_fullScreen.bFullScreen)
{
int nHeight = GetSystemMetrics(SM_CYMENU);
lpMMI->ptMaxPosition.y = -GetSystemMetrics(SM_CYFRAME) - GetSystemMetrics(SM_CYCAPTION) - nHeight;
lpMMI->ptMaxTrackSize.y = lpMMI->ptMaxSize.y
= GetSystemMetrics(SM_CYSCREEN)
+ 2*GetSystemMetrics(SM_CYFRAME)
+ GetSystemMetrics(SM_CYCAPTION)
+ nHeight;
}
}
// 显示功能视图
void CMainFrame::OnViewWizard()
{
AfxSwitchToStaticView(RUNTIME_CLASS(CWizardView));
}
void CMainFrame::OnUpdateViewWizard(CCmdUI* pCmdUI)
{
CView * pView = AfxGetStaticDoc()->GetActiveView();
pCmdUI->SetCheck(pView && pView->IsKindOf(RUNTIME_CLASS(CWizardView)));
}
void CMainFrame::OnViewSimu()
{
AfxSwitchToStaticView(RUNTIME_CLASS(CSimuView));
}
void CMainFrame::OnUpdateViewSimu(CCmdUI* pCmdUI)
{
CView * pView = AfxGetStaticDoc()->GetActiveView();
pCmdUI->SetCheck(pView && pView->IsKindOf(RUNTIME_CLASS(CSimuView)));
}
void CMainFrame::OnViewSlist()
{
AfxSwitchToStaticView(RUNTIME_CLASS(CSListView));
}
void CMainFrame::OnUpdateViewSlist(CCmdUI* pCmdUI)
{
CView * pView = AfxGetStaticDoc()->GetActiveView();
pCmdUI->SetCheck(pView && pView->IsKindOf(RUNTIME_CLASS(CSListView)));
}
void CMainFrame::OnViewRealtime()
{
AfxSwitchToStaticView(RUNTIME_CLASS(CRealTimeView));
}
void CMainFrame::OnUpdateViewRealtime(CCmdUI* pCmdUI)
{
CView * pView = AfxGetStaticDoc()->GetActiveView();
pCmdUI->SetCheck(pView && pView->IsKindOf(RUNTIME_CLASS(CRealTimeView)));
}
void CMainFrame::OnViewMultisort()
{
AfxSwitchToStaticView(RUNTIME_CLASS(CMultiSortView));
}
void CMainFrame::OnUpdateViewMultisort(CCmdUI* pCmdUI)
{
CView * pView = AfxGetStaticDoc()->GetActiveView();
pCmdUI->SetCheck(pView && pView->IsKindOf(RUNTIME_CLASS(CMultiSortView)));
}
void CMainFrame::OnViewTechgraph()
{
AfxSwitchToStaticView(RUNTIME_CLASS(CGraphView));
}
void CMainFrame::OnUpdateViewTechgraph(CCmdUI* pCmdUI)
{
CView * pView = AfxGetStaticDoc()->GetActiveView();
pCmdUI->SetCheck(pView && pView->IsKindOf(RUNTIME_CLASS(CGraphView)));
}
void CMainFrame::OnViewBase()
{
AfxSwitchToStaticView(RUNTIME_CLASS(CBaseView));
}
void CMainFrame::OnUpdateViewBase(CCmdUI* pCmdUI)
{
CView * pView = AfxGetStaticDoc()->GetActiveView();
pCmdUI->SetCheck(pView && pView->IsKindOf(RUNTIME_CLASS(CBaseView)));
}
void CMainFrame::OnViewInfo()
{
AfxSwitchToStaticView(RUNTIME_CLASS(CInfoView));
}
void CMainFrame::OnUpdateViewInfo(CCmdUI* pCmdUI)
{
CView * pView = AfxGetStaticDoc()->GetActiveView();
pCmdUI->SetCheck(pView && pView->IsKindOf(RUNTIME_CLASS(CInfoView)));
}
void CMainFrame::OnViewSelector()
{
AfxSwitchToStaticView(RUNTIME_CLASS(CSelectorView));
}
void CMainFrame::OnUpdateViewSelector(CCmdUI* pCmdUI)
{
CView * pView = AfxGetStaticDoc()->GetActiveView();
pCmdUI->SetCheck(pView && pView->IsKindOf(RUNTIME_CLASS(CSelectorView)));
}
void CMainFrame::OnViewF10()
{
AfxSwitchToStaticView(RUNTIME_CLASS(CBaseView));
// AfxSwitchToStaticView(RUNTIME_CLASS(CInfoView));
// ::PostMessage(AfxGetInfoView()->GetSafeHwnd(), WM_COMMAND, ID_VIEW_F10, 0);
}
void CMainFrame::OnUpdateViewF10(CCmdUI* pCmdUI)
{
CView * pView = AfxGetStaticDoc()->GetActiveView();
pCmdUI->SetCheck(pView && pView->IsKindOf(RUNTIME_CLASS(CBaseView)));
// CView * pView = AfxGetStaticDoc()->GetActiveView();
// CInfoView * pInfoView = AfxGetInfoView();
// pCmdUI->SetCheck(pView && pView->IsKindOf(RUNTIME_CLASS(CInfoView))
// && pInfoView && pInfoView->IsViewF10());
}
////////////////////////////////////////////////////////////////////////////////
// “列表”菜单
// 股票列表
void CMainFrame::OnSlistIndex() { AfxShowSlist(CStockContainer::typeIndex); }
void CMainFrame::OnSlistStrategy() { AfxShowSlist(CStockContainer::typeStrategy); }
void CMainFrame::OnSlistGroup() { AfxShowSlist(CStockContainer::typeGroup); }
void CMainFrame::OnSlistGroupself()
{ CString strSelf;
strSelf.LoadString(IDS_DOMAIN_SELF);
AfxShowSlist(CStockContainer::typeGroup, strSelf); }
void CMainFrame::OnSlistDomain(){ AfxShowSlist(CStockContainer::typeDomain);}
void CMainFrame::OnSlistDomainRange(UINT nCmdID)
{
if (nCmdID < ID_SLIST_DOMAIN_START || nCmdID > ID_SLIST_DOMAIN_END)
{
ASSERT(FALSE);
return;
}
CDomainContainer &container = AfxGetDomainContainer();
int nIndex = nCmdID - ID_SLIST_DOMAIN_START;
CString strDomainName;
if (ID_SLIST_DOMAIN_END == nCmdID)
{
CSelectGrpDlg dlg;
dlg.SetMode(CSelectGrpDlg::modeDomain);
if (IDOK == dlg.DoModal())
strDomainName = dlg.GetSelectedName();
else
return;
}
else if (nIndex < container.GetSize())
{
CDomain & domain = container.ElementAt(nIndex);
strDomainName = domain.m_strName;
}
else
{
ASSERT(FALSE);
return;
}
AfxShowSlist(CStockContainer::typeDomain, strDomainName);
}
void CMainFrame::OnSlistGroupRange(UINT nCmdID)
{
if (nCmdID < ID_SLIST_GROUP_START || nCmdID > ID_SLIST_GROUP_END)
{
ASSERT(FALSE);
return;
}
CDomainContainer &container = AfxGetGroupContainer();
int nIndex = nCmdID - ID_SLIST_GROUP_START;
CString strGroupName;
if (ID_SLIST_GROUP_END == nCmdID)
{
CSelectGrpDlg dlg;
dlg.SetMode(CSelectGrpDlg::modeGroup);
if (IDOK == dlg.DoModal())
strGroupName = dlg.GetSelectedName();
else
return;
}
else if (nIndex < container.GetSize())
{
CDomain & domain = container.ElementAt(nIndex);
strGroupName = domain.m_strName;
}
else
{
ASSERT(FALSE);
return;
}
AfxShowSlist(CStockContainer::typeGroup, strGroupName);
}
// 股票列表报价
void CMainFrame::OnSlistAll() { AfxShowSlist(CStockContainer::typeAll); }
void CMainFrame::OnSlistShaa() { AfxShowSlist(CStockContainer::typeClassShaa); }
void CMainFrame::OnSlistShab() { AfxShowSlist(CStockContainer::typeClassShab); }
void CMainFrame::OnSlistSzna() { AfxShowSlist(CStockContainer::typeClassSzna); }
void CMainFrame::OnSlistSznb() { AfxShowSlist(CStockContainer::typeClassSznb); }
void CMainFrame::OnSlistShabond() { AfxShowSlist(CStockContainer::typeClassShabond); }
void CMainFrame::OnSlistSznbond() { AfxShowSlist(CStockContainer::typeClassSznbond); }
// 股票列表涨跌排名
void CMainFrame::OnSlistShaasortdp() { AfxShowSlistSortDP(CStockContainer::typeClassShaa); }
void CMainFrame::OnSlistShabsortdp() { AfxShowSlistSortDP(CStockContainer::typeClassShab); }
void CMainFrame::OnSlistSznasortdp() { AfxShowSlistSortDP(CStockContainer::typeClassSzna); }
void CMainFrame::OnSlistSznbsortdp() { AfxShowSlistSortDP(CStockContainer::typeClassSznb); }
void CMainFrame::OnSlistShabondsortdp() { AfxShowSlistSortDP(CStockContainer::typeClassShabond); }
void CMainFrame::OnSlistSznbondsortdp() { AfxShowSlistSortDP(CStockContainer::typeClassSznbond); }
void CMainFrame::OnSlistSetcolumn()
{
CSListView * pView = AfxGetSListView();
if (pView)
pView->StoreColumnOrderArray();
CSetColumnDlg dlg;
if (IDOK == dlg.DoModal())
{
// Show
CSListView * pView = AfxGetSListView();
if (pView)
pView->ResetColumns();
AfxGetStaticDoc()->UpdateAllViews(NULL, UPDATE_HINT_SLISTVIEW, NULL);
AfxGetStaticDoc()->UpdateAllViews(NULL, UPDATE_HINT_SELECTORVIEW, NULL);
}
}
void CMainFrame::OnSlistBaseindex()
{
CBaseIndexDlg dlg;
if (IDOK == dlg.DoModal() && dlg.m_bAddToList)
{
// Show
CSListView * pView = AfxGetSListView();
if (pView)
pView->ResetColumns();
AfxGetStaticDoc()->UpdateAllViews(NULL, UPDATE_HINT_SLISTVIEW, NULL);
AfxGetStaticDoc()->UpdateAllViews(NULL, UPDATE_HINT_SELECTORVIEW, NULL);
}
}
void CMainFrame::OnSlistbarDate() { }
void CMainFrame::OnSlistbarName() { }
////////////////////////////////////////////////////////////////////////////////
// “技术”菜单
// 指数日线显示
void CMainFrame::OnViewViewszzs() { AfxShowStockGraph(STKLIB_CODE_SZZS); }
void CMainFrame::OnViewViewszybl() { AfxShowStockGraph(STKLIB_CODE_SZYBL); }
void CMainFrame::OnViewViewszag() { AfxShowStockGraph(STKLIB_CODE_SZAG); }
void CMainFrame::OnViewViewszbg() { AfxShowStockGraph(STKLIB_CODE_SZBG); }
void CMainFrame::OnViewViewszncz() { AfxShowStockGraph(STKLIB_CODE_SZNCZ); }
void CMainFrame::OnViewViewsznzz() { AfxShowStockGraph(STKLIB_CODE_SZNZZ); }
void CMainFrame::OnViewViewszncfaz(){ AfxShowStockGraph(STKLIB_CODE_SZNCFAZ); }
void CMainFrame::OnViewViewszncfbz(){ AfxShowStockGraph(STKLIB_CODE_SZNCFBZ); }
void CMainFrame::OnViewTechoption()
{
CSetParamDlg dlg;
dlg.DoModal();
CGraphView * pGraphView = AfxGetGraphView();
if (pGraphView)
pGraphView->OnTechParametersChange();
AfxGetStaticDoc()->UpdateAllViews(NULL, UPDATE_HINT_GRAPHVIEW, NULL);
}
#define SWITCH_SHOW_GRAPH_COMMAND(nID, nIDLast) \
AfxSwitchToStaticView(RUNTIME_CLASS(CGraphView)); \
::PostMessage(AfxGetGraphView()->GetSafeHwnd(), WM_COMMAND, nID, nIDLast);
#define UPDATE_GRAPH_CMDUI(pCmdUI, updateFunc) \
CGraphView * pGraphView = AfxGetGraphView(); \
if (pGraphView) \
pGraphView->updateFunc(pCmdUI); \
else \
pCmdUI->Enable(TRUE);
// K线图周期
void CMainFrame::OnViewPday() { SWITCH_SHOW_GRAPH_COMMAND(ID_VIEW_PDAY, 0); }
void CMainFrame::OnUpdateViewPday(CCmdUI* pCmdUI) { UPDATE_GRAPH_CMDUI(pCmdUI,OnUpdateViewPday); }
void CMainFrame::OnViewPweek() { SWITCH_SHOW_GRAPH_COMMAND(ID_VIEW_PWEEK, 0); }
void CMainFrame::OnUpdateViewPweek(CCmdUI* pCmdUI) { UPDATE_GRAPH_CMDUI(pCmdUI,OnUpdateViewPweek); }
void CMainFrame::OnViewPmonth() { SWITCH_SHOW_GRAPH_COMMAND(ID_VIEW_PMONTH, 0); }
void CMainFrame::OnUpdateViewPmonth(CCmdUI* pCmdUI) { UPDATE_GRAPH_CMDUI(pCmdUI,OnUpdateViewPmonth); }
void CMainFrame::OnViewPmin5() { SWITCH_SHOW_GRAPH_COMMAND(ID_VIEW_PMIN5, 0); }
void CMainFrame::OnUpdateViewPmin5(CCmdUI* pCmdUI) { UPDATE_GRAPH_CMDUI(pCmdUI,OnUpdateViewPmin5); }
void CMainFrame::OnViewPmin15() { SWITCH_SHOW_GRAPH_COMMAND(ID_VIEW_PMIN15, 0); }
void CMainFrame::OnUpdateViewPmin15(CCmdUI* pCmdUI) { UPDATE_GRAPH_CMDUI(pCmdUI,OnUpdateViewPmin15); }
void CMainFrame::OnViewPmin30() { SWITCH_SHOW_GRAPH_COMMAND(ID_VIEW_PMIN30, 0); }
void CMainFrame::OnUpdateViewPmin30(CCmdUI* pCmdUI) { UPDATE_GRAPH_CMDUI(pCmdUI,OnUpdateViewPmin30); }
void CMainFrame::OnViewPmin60() { SWITCH_SHOW_GRAPH_COMMAND(ID_VIEW_PMIN60, 0); }
void CMainFrame::OnUpdateViewPmin60(CCmdUI* pCmdUI) { UPDATE_GRAPH_CMDUI(pCmdUI,OnUpdateViewPmin60); }
// K线图移动
void CMainFrame::OnViewLeft() { SWITCH_SHOW_GRAPH_COMMAND(ID_VIEW_LEFT, 0); }
void CMainFrame::OnViewRight() { SWITCH_SHOW_GRAPH_COMMAND(ID_VIEW_RIGHT, 0); }
vo
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -