Пример #1
0
BOOL CPPagePlayback::OnApply()
{
    UpdateData();

    CAppSettings& s = AfxGetAppSettings();

    s.nVolume = m_oldVolume = m_nVolume;
    s.nBalance = m_nBalance;
    s.nVolumeStep = std::min(std::max(m_nVolumeStep, 1), 100);
    s.nSpeedStep = m_nSpeedStep;
    s.fLoopForever = !!m_iLoopForever;
    s.nLoops = m_nLoops;
    s.eAfterPlayback = static_cast<CAppSettings::AfterPlayback>(m_iAfterPlayback);
    s.iZoomLevel = m_iZoomLevel;
    s.fRememberZoomLevel = !!m_iRememberZoomLevel;
    s.nAutoFitFactor = m_nAutoFitFactor = std::min(std::max(m_nAutoFitFactor, 25), 100);
    s.fAutoloadAudio = !!m_fAutoloadAudio;
    s.fEnableWorkerThreadForOpening = !!m_fEnableWorkerThreadForOpening;
    s.fReportFailedPins = !!m_fReportFailedPins;
    s.strSubtitlesLanguageOrder = m_subtitlesLanguageOrder;
    s.strAudiosLanguageOrder = m_audiosLanguageOrder;
    s.bAllowOverridingExternalSplitterChoice = !!m_fAllowOverridingExternalSplitterChoice;

    // There is no main frame when the option dialog is displayed stand-alone
    if (CMainFrame* pMainFrame = AfxGetMainFrame()) {
        pMainFrame->UpdateControlState(CMainFrame::UPDATE_VOLUME_STEP);
    }

    return __super::OnApply();
}
Пример #2
0
void CGraphView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) 
{
	// TODO: Add your specialized code here and/or call the base class
	if( UPDATE_HINT_GRAPHVIEW != lHint && UPDATE_HINT_GRAPHVIEW_NOTRELOADDATA != lHint )
		return;
	if( !IsWindowVisible() )
		return;
	SetFocus( );

	CStockInfo	info;
	if( AfxGetProfile().GetCurrentStock( &info ) )
	{
		m_graph.SetCurStock( info );
		m_graph.PrepareStockData( UPDATE_HINT_GRAPHVIEW_NOTRELOADDATA != lHint );
	}
	else
	{
		m_graph.SetCurStock( STKLIB_CODE_MAIN );
		m_graph.PrepareStockData( UPDATE_HINT_GRAPHVIEW_NOTRELOADDATA != lHint );
		AfxGetProfile().SetCurrentStock( STKLIB_CODE_MAIN, FALSE );
	}

	Invalidate( );

	CMainFrame	* pFrame = AfxGetMainFrame();
	if( pFrame )
		pFrame->m_SearchBox.SetCurrentWindowText( );
}
Пример #3
0
BOOL CPPageBase::OnApply()
{
    // There is no main frame when the option dialog is displayed stand-alone
    if (CMainFrame* pMainFrame = AfxGetMainFrame()) {
        pMainFrame->PostMessage(WM_SAVESETTINGS);
    }
    return __super::OnApply();
}
Пример #4
0
void CRealTimeView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) 
{
	// TODO: Add your specialized code here and/or call the base class
	if( UPDATE_HINT_REALTIMEVIEW != lHint )
		return;
	if( !IsWindowVisible() )
		return;
	SetFocus( );

	ASSERT( RTV_MAX_MULTICOUNT > 0 );

	CStockInfo	info;
	if( AfxGetProfile().GetCurrentStock( &info ) )
	{
		m_realtime[0].SetCurStock( info );
		m_realtime[0].PrepareStockData( );
	}
	else
	{
		m_realtime[0].SetCurStock( STKLIB_CODE_MAIN );
		m_realtime[0].PrepareStockData( );
		AfxGetProfile().SetCurrentStock( STKLIB_CODE_MAIN, FALSE );
	}
	if( CRealTime::modeReportDetail == m_realtime[0].GetDrawMode() )
		AfxGetStkReceiver().RequestStockData( CStock::dataDetail, &info, 1, 0, 0 );
	else
		AfxGetStkReceiver().RequestStockData( CStock::dataMinute, &info, 1, 0, 0 );

	// 多股同列
	int i;
	for( i=1; i<m_nMultiStockCount && i<RTV_MAX_MULTICOUNT; i++ )
	{
		if( AfxGetProfile().GetNextStock( &info ) )
		{
			m_realtime[i].SetCurStock( info );
			m_realtime[i].PrepareStockData( );
			if( CRealTime::modeReportDetail == m_realtime[0].GetDrawMode() )
				AfxGetStkReceiver().RequestStockData( CStock::dataDetail, &info, 1, 0, 0 );
			else
				AfxGetStkReceiver().RequestStockData( CStock::dataMinute, &info, 1, 0, 0 );
		}
	}
	for( i=1; i<m_nMultiStockCount && i<RTV_MAX_MULTICOUNT; i++ )
		AfxGetProfile().GetPrevStock( &info );

	Invalidate( );

	if( 1 == m_nMultiStockCount && CRealTime::modePriceLine == m_realtime[0].GetDrawMode() )
		m_wndReportTab.SetWindowPos( NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW );
	else
		m_wndReportTab.SetWindowPos( NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_HIDEWINDOW );

	CMainFrame	* pFrame = AfxGetMainFrame();
	if( pFrame )
		pFrame->m_SearchBox.SetCurrentWindowText( );

	SendRequestQuote(TRUE);
}
Пример #5
0
void CSListView::SetCurrentStatus( int nType, LPCTSTR lpszDomain, DWORD dwDate )
{
	AfxGetSListStockContainer().RetrieveFromStatic( nType, lpszDomain, AfxGetActiveStrategy(), dwDate );
	OnUpdate( NULL, UPDATE_HINT_SLISTVIEW, NULL );

	CMainFrame	* pFrame = AfxGetMainFrame();
	if( pFrame )
		pFrame->m_DateBox.SetCurrentWindowText( );
}
Пример #6
0
void CPlayerSeekBar::MoveThumb(const CPoint& point)
{
    if (m_bHasDuration) {
        REFERENCE_TIME rtPos = PositionFromClientPoint(point);
        if (AfxGetAppSettings().bFastSeek ^ (GetKeyState(VK_SHIFT) < 0)) {
            rtPos = AfxGetMainFrame()->GetClosestKeyFrame(rtPos);
        }
        SyncThumbToVideo(rtPos);
    }
}
Пример #7
0
BOOL CPPageFullscreen::OnApply()
{
    UpdateData();

    CAppSettings& s = AfxGetAppSettings();

    s.strFullScreenMonitor = m_fullScreenMonitor;
    s.fLaunchfullscreen = !!m_bLaunchFullscreen;
    s.fExitFullScreenAtTheEnd = !!m_fExitFullScreenAtTheEnd;

    s.bHideFullscreenControls = !!m_bHideFullscreenControls;
    {
        int n = m_hidePolicy.GetCurSel();
        if (n != CB_ERR) {
            s.eHideFullscreenControlsPolicy =
                static_cast<CAppSettings::HideFullscreenControlsPolicy>(m_hidePolicy.GetItemData(n));
        } else {
            ASSERT(FALSE);
        }
    }
    if (s.eHideFullscreenControlsPolicy == CAppSettings::HideFullscreenControlsPolicy::SHOW_WHEN_CURSOR_MOVED &&
            m_uHideFullscreenControlsDelay > 0 && m_uHideFullscreenControlsDelay < SANE_TIMEOUT_FOR_SHOW_CONTROLS_ON_MOUSE_MOVE) {
        m_uHideFullscreenControlsDelay = SANE_TIMEOUT_FOR_SHOW_CONTROLS_ON_MOUSE_MOVE;
        UpdateData(FALSE);
    }
    s.uHideFullscreenControlsDelay = m_uHideFullscreenControlsDelay;
    s.bHideFullscreenDockedPanels = !!m_bHideFullscreenDockedPanels;

    s.autoChangeFSMode.bEnabled = !!m_bAutoChangeFSModeEnabled;
    s.autoChangeFSMode.bApplyDefaultModeAtFSExit = !!m_bAutoChangeFSModeApplyDefModeAtFSExist;
    s.autoChangeFSMode.bRestoreResAfterProgExit = !!m_bAutoChangeFSModeRestoreResAfterProgExit;
    s.autoChangeFSMode.uDelay = m_uAutoChangeFullscrResDelay;

    m_autoChangeFSModes.clear();
    for (int nItem = 0, count = m_list.GetItemCount(); nItem < count; nItem++) {
        double dFRStart, dFRStop;
        if (nItem == 0) { // Special case for default mode
            dFRStart = 0.0;
            dFRStop = 0.0;
        } else {
            dFRStart = _tcstod(m_list.GetItemText(nItem, COL_FRAMERATE_START), nullptr);
            dFRStop = _tcstod(m_list.GetItemText(nItem, COL_FRAMERATE_STOP), nullptr);
        }

        m_autoChangeFSModes.emplace_back(!!m_list.GetCheck(nItem), dFRStart, dFRStop, m_displayModes[m_list.GetItemData(nItem)]);
    }
    s.autoChangeFSMode.modes = m_autoChangeFSModes;

    // There is no main frame when the option dialog is displayed stand-alone
    if (CMainFrame* pMainFrame = AfxGetMainFrame()) {
        pMainFrame->UpdateControlState(CMainFrame::UPDATE_CONTROLS_VISIBILITY);
    }

    return __super::OnApply();
}
Пример #8
0
void CSetGroupDlg::OnOK() 
{
	// TODO: Add extra validation here
	CDomainContainer & groups = AfxGetGroupContainer( );
	groups	=	m_grpTemp;
	groups.Store( AfxGetProfile().GetGroupFile() );

	::PostMessage( AfxGetGroupView()->GetSafeHwnd(), WM_USER_UPDATEGROUPS, 0, 0 );
	::PostMessage( AfxGetMainFrame()->GetSafeHwnd(), WM_USER_UPDATEBARMENU, 0, 0 );

	CXFDialog::OnOK();
}
Пример #9
0
void CStrategyView::ExecuteStrategy( CStrategy * pStrategy, DWORD dwData )
{
	if( NULL != pStrategy )
	{
		if( SV_ITEM_PROPERTY == dwData )
			::PostMessage( AfxGetMainFrame()->GetSafeHwnd(), WM_COMMAND, ID_STRATEGY_PROPERTY, 0 );
		else if( SV_ITEM_STOCKS == dwData )
			AfxShowSlist( CStockContainer::typeStrategy, NULL );
		else if( SV_ITEM_RULE == dwData )
			::PostMessage( AfxGetMainFrame()->GetSafeHwnd(), WM_COMMAND, ID_STRATEGY_SETRULE, 0 );
		else if( SV_ITEM_RATE == dwData )
			::PostMessage( AfxGetMainFrame()->GetSafeHwnd(), WM_COMMAND, ID_STRATEGY_SETRATE, 0 );
		else if( SV_ITEM_SIMU == dwData )
			AfxSwitchToStaticView( RUNTIME_CLASS(CSimuView) );
		else if( SV_ITEM_REPORT == dwData )
			::PostMessage( AfxGetMainFrame()->GetSafeHwnd(), WM_COMMAND, ID_STRATEGY_REPORT, 0 );
		else if( SV_ITEM_REALOP == dwData )
			::PostMessage( AfxGetMainFrame()->GetSafeHwnd(), WM_COMMAND, ID_STRATEGY_REALOP, 0 );
		else
			AfxSwitchToStaticView( RUNTIME_CLASS(CSimuView) );
	}
}
Пример #10
0
BOOL CDateComboBox::PreTranslateMessage(MSG* pMsg)
{
	if( pMsg->message == WM_KEYDOWN )
	{
		if( CSearchBox::IsWantChar( pMsg->wParam ) )
		{
			CMainFrame	* pFrame = AfxGetMainFrame();
			if( pFrame )
				pFrame->m_SearchBox.OnChangeStatus( pMsg->wParam, pMsg->lParam, FALSE );
			return TRUE;
		}
	}

	return CComboBox::PreTranslateMessage(pMsg);
}
Пример #11
0
CView* CStaticDoc::GetActiveView( )
{
	CMainFrame * pMainFrame = AfxGetMainFrame();
	if( pMainFrame )
	{
		CChildFrame * pChildFrame = DYNAMIC_DOWNCAST( CChildFrame, pMainFrame->MDIGetActive() );
		if( pChildFrame )
		{
			CView * pView = pChildFrame->GetActiveView();
			if( pView && this == pView->GetDocument() )
				return pView;
		}
	}
	return NULL;
}
Пример #12
0
void CPlayerSeekBar::OnLButtonDown(UINT nFlags, CPoint point)
{
    CRect clientRect;
    GetClientRect(&clientRect);
    if (m_bEnabled && m_bHasDuration && clientRect.PtInRect(point)) {
        m_bHovered = false;
        SetCapture();
        MoveThumb(point);
        VERIFY(SetTimer(TIMER_HOVER_CAPTURED, HOVER_CAPTURED_TIMEOUT, nullptr));
    } else {
        auto pFrame = AfxGetMainFrame();
        if (!pFrame->m_fFullScreen) {
            MapWindowPoints(pFrame, &point, 1);
            pFrame->PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));
        }
    }
}
Пример #13
0
void CChildFrame::OnTabSelChange(NMHDR* pNMHDR, LRESULT* pResult)
{
	int nSel = m_tabctrl.GetCurSel();
	if( -1 == nSel )
		return;

	CMainFrame	* pFrame = AfxGetMainFrame();
	if( NULL == pFrame )
		return;

	TCITEM tci;
	tci.mask	=	TCIF_PARAM;
	if( m_tabctrl.GetItem( nSel, &tci ) )
	{
		pFrame->OnCmdMsg( tci.lParam, 0, NULL, NULL );
	}
}
Пример #14
0
BOOL CStkUIApp::OnDBChanged( BOOL bRecalculate )
{
	CWaitCursor	waitcursor;

	// Reload DB
	AfxGetStockContainer().Load( &AfxGetDB(), NULL, NULL );
	AfxGetDomainContainer().Load( AfxGetProfile().GetDomainFile() );
	AfxGetGroupContainer().Load( AfxGetProfile().GetGroupFile() );
	AfxGetDB().LoadKDataCache( AfxGetStockContainer(), NULL, NULL, 0, STKLIB_MAX_PROGRESS );
	AfxGetStockContainer().OnDataChanged( );

	AfxGetStkReceiver().RefreshStockContainer( AfxGetStockContainer(), TRUE );

	// Reload AfxGetStockMain()
	AfxReloadStockMain( );

	// Recalcuate Yield
	if( bRecalculate && IDYES == AfxMessageBox( IDS_INSTALLPAC_IFRECALCULATE, MB_YESNO|MB_ICONINFORMATION ) )
	{
		AfxRecalculateYield( AfxGetProfile().GetYieldAverageDays(), TRUE );
		AfxGetStockContainer().ReloadBase( &AfxGetDB() );
	}

	// Update SListBar
	CMainFrame	* pMainFrame	=	AfxGetMainFrame();
	if( pMainFrame )
	{
		pMainFrame->m_SearchBox.InitStocks( TRUE, TRUE, TRUE );
		pMainFrame->m_SearchBox.SetCurrentWindowText( );
		//pMainFrame->m_DateBox.InitDates( );
		//pMainFrame->m_DateBox.SetCurrentWindowText( );
	}

	// Update Views
	AfxGetSListStockContainer().ReRetrieveFromStatic( AfxGetActiveStrategy(), TRUE );
	AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_SLISTVIEW, NULL );
	AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_GRAPHVIEW, NULL );
	AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_BASEVIEW, NULL );
	AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_SIMUVIEW_REREALRUN, NULL );
	AfxGetStaticDoc()->UpdateAllViews( NULL, UPDATE_HINT_SELECTORVIEW, NULL );
	::PostMessage( AfxGetGroupView()->GetSafeHwnd(), WM_USER_UPDATEGROUPS, 0, 0 );

	return TRUE;
}
Пример #15
0
void CPlayerSeekBar::SyncThumbToVideo(REFERENCE_TIME rtPos)
{
    if (m_rtPos == rtPos) {
        return;
    }

    m_rtPos = rtPos;

    if (m_bHasDuration) {
        CRect newThumbRect(GetThumbRect());
        if (newThumbRect != m_lastThumbRect) {
            InvalidateRect(newThumbRect | m_lastThumbRect);
            auto pFrame = AfxGetMainFrame();
            if (pFrame && AfxGetAppSettings().fUseWin7TaskBar && pFrame->m_pTaskbarList) {
                pFrame->m_pTaskbarList->SetProgressValue(pFrame->m_hWnd, m_rtPos, m_rtStop);
            }
        }
    }
}
Пример #16
0
BOOL CPPageTweaks::OnApply()
{
    UpdateData();

    CAppSettings& s = AfxGetAppSettings();

    s.nJumpDistS = m_nJumpDistS;
    s.nJumpDistM = m_nJumpDistM;
    s.nJumpDistL = m_nJumpDistL;
    s.bNotifySkype = !!m_fNotifySkype;

    s.fPreventMinimize = !!m_fPreventMinimize;
    s.fUseWin7TaskBar = !!m_fUseWin7TaskBar;
    s.fUseSearchInFolder = !!m_fUseSearchInFolder;
    s.fUseTimeTooltip = !!m_fUseTimeTooltip;
    s.nTimeTooltipPosition = m_TimeTooltipPosition.GetCurSel();
    s.nOSDSize = m_nOSDSize;
    m_FontType.GetLBText(m_FontType.GetCurSel(), s.strOSDFont);

    s.bFastSeek = !!m_fFastSeek;
    s.eFastSeekMethod = static_cast<decltype(s.eFastSeekMethod)>(m_FastSeekMethod.GetCurSel());

    s.bHideWindowedMousePointer = !!m_bHideWindowedMousePointer;

    s.fShowChapters = !!m_fShowChapters;

    s.fLCDSupport = !!m_fLCDSupport;

    CMainFrame* pFrame = ((CMainFrame*)GetParentFrame());
    if (m_fUseWin7TaskBar) {
        pFrame->CreateThumbnailToolbar();
    }
    pFrame->UpdateThumbarButton();

    // There is no main frame when the option dialog is displayed stand-alone
    if (CMainFrame* pMainFrame = AfxGetMainFrame()) {
        pMainFrame->UpdateControlState(CMainFrame::UPDATE_SKYPE);
        pMainFrame->UpdateControlState(CMainFrame::UPDATE_SEEKBAR_CHAPTERS);
    }

    return __super::OnApply();
}
Пример #17
0
void CSListView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) 
{
	// TODO: Add your specialized code here and/or call the base class
	CMainFrame	* pFrame	=	AfxGetMainFrame( );
	if( pFrame )
		pFrame->SetMessageText( bActivate ? IDS_HELPTIP_SLIST : AFX_IDS_IDLEMESSAGE );

	if( bActivate && m_bShouldUpdate )
	{
		OnUpdate( NULL, UPDATE_HINT_SLISTVIEW, NULL );
		m_bShouldUpdate	=	FALSE;
	}

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

	if( ::IsWindow(m_wndWorkTab.GetSafeHwnd()) )
	{
		m_wndWorkTab.Invalidate( );
		m_wndWorkTab.UpdateWindow( );
	}
}
Пример #18
0
void CPlayerSeekBar::UpdateToolTipText()
{
    ASSERT(m_bHasDuration);
    REFERENCE_TIME rtNow = PositionFromClientPoint(m_tooltipPoint);

    CString time;
    GUID timeFormat = AfxGetMainFrame()->GetTimeFormat();
    if (timeFormat == TIME_FORMAT_MEDIA_TIME) {
        DVD_HMSF_TIMECODE tcNow = RT2HMS_r(rtNow);
        if (tcNow.bHours > 0) {
            time.Format(_T("%02u:%02u:%02u"), tcNow.bHours, tcNow.bMinutes, tcNow.bSeconds);
        } else {
            time.Format(_T("%02u:%02u"), tcNow.bMinutes, tcNow.bSeconds);
        }
    } else if (timeFormat == TIME_FORMAT_FRAME) {
        time.Format(_T("%I64d"), rtNow);
    } else {
        ASSERT(FALSE);
    }

    CComBSTR chapterName;
    {
        CAutoLock lock(&m_csChapterBag);
        if (m_pChapterBag) {
            REFERENCE_TIME rt = rtNow;
            m_pChapterBag->ChapLookup(&rt, &chapterName);
        }
    }

    if (chapterName.Length() == 0) {
        m_tooltipText = time;
    } else {
        m_tooltipText.Format(_T("%s - %s"), time, chapterName);
    }

    m_ti.lpszText = (LPTSTR)(LPCTSTR)m_tooltipText;
    m_tooltip.SetToolInfo(&m_ti);
}
Пример #19
0
CChildFrame* CChildFrame::CreateNewFrame( CStaticDoc* pStaticDoc )
{
	if (pStaticDoc != NULL)
		ASSERT_VALID(pStaticDoc);
	// create a frame wired to the specified document

	ASSERT( pStaticDoc->GetIDResource() != 0); // must have a resource ID to load from
	CCreateContext context;
	context.m_pCurrentFrame = NULL;
	context.m_pCurrentDoc = NULL;		//pStaticDoc;
	context.m_pLastView = NULL;
	context.m_pNewViewClass = NULL; // pViewClass if this is set, a view will be created!
	context.m_pNewDocTemplate = NULL;

	CRuntimeClass* pFrameClass = RUNTIME_CLASS(CChildFrame);

	CChildFrame * pFrame = (CChildFrame*)pFrameClass->CreateObject();
	if (pFrame == NULL)
	{
		TRACE1("Warning: Dynamic create of frame %hs failed.\n",
			pFrameClass->m_lpszClassName);
		return NULL;
	}
	ASSERT_KINDOF(CChildFrame, pFrame);

	// create new from resource
	if (!pFrame->LoadFrame( pStaticDoc->GetIDResource(),
			WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE,   // default frame styles
			AfxGetMainFrame(), &context))
	{
		TRACE0("Warning: Couldn't create a child frame.\n");
		// frame will be deleted in PostNcDestroy cleanup
		return NULL;
	}

	// it worked !
	return pFrame;
}
Пример #20
0
BOOL CPPageSubStyle::OnApply()
{
    UpdateData();

    if (m_iCharset >= 0) {
        m_stss.charSet = (int)m_cbCharset.GetItemData(m_iCharset);
    }
    m_stss.fontSpacing = m_spacing;
    m_stss.fontAngleZ = m_angle;
    m_stss.fontScaleX = m_scalex;
    m_stss.fontScaleY = m_scaley;

    m_stss.borderStyle = m_borderStyle;
    m_stss.outlineWidthX = m_stss.outlineWidthY = m_borderWidth;
    m_stss.shadowDepthX = m_stss.shadowDepthY = m_shadowDepth;

    m_stss.scrAlignment = m_screenAlignment + 1;
    m_stss.marginRect = m_margin;
    m_stss.relativeTo = (STSStyle::RelativeTo)m_iRelativeTo;

    for (size_t i = 0; i < m_alpha.size(); i++) {
        ASSERT(m_alpha[i] <= BYTE_MAX);
        m_stss.alpha[i] = BYTE_MAX - BYTE(m_alpha[i]);
    }

    if (m_bDefaultStyle) {
        STSStyle& stss = AfxGetAppSettings().subtitlesDefStyle;

        if (stss != m_stss) {
            stss = m_stss;
            if (CMainFrame* pMainFrame = AfxGetMainFrame()) {
                pMainFrame->UpdateSubDefaultStyle();
            }
        }
    }

    return __super::OnApply();
}
Пример #21
0
BOOL CStaticDoc::ShowStaticView( CRuntimeClass * pViewClass, BOOL bMaximized )
{
	if( NULL == pViewClass )
		return FALSE;

	CChildFrame * pChildFrame = NULL;

	POSITION pos = GetFirstViewPosition( );
	CView * pView = NULL;
	while( pView = GetNextView(pos) )
	{
		if( pView->IsKindOf( pViewClass ) )
		{
			pChildFrame = DYNAMIC_DOWNCAST( CChildFrame, pView->GetParentFrame() );
			ASSERT( pChildFrame );
			if( pChildFrame )
				break;
		}
	}

	if( NULL == pChildFrame )
	{
		// create frame
		pChildFrame = CChildFrame::CreateNewFrame( this );
		ASSERT( pChildFrame );

		if( pChildFrame )
		{
			// create view
			CCreateContext context;
			context.m_pCurrentDoc = this;
			context.m_pCurrentFrame = pChildFrame;
			context.m_pLastView = NULL;
			context.m_pNewDocTemplate = NULL;
			context.m_pNewViewClass = pViewClass;

			CView * pNewView = DYNAMIC_DOWNCAST(CView,pChildFrame->CreateView( &context, AFX_IDW_PANE_FIRST));
			if( pNewView )
			{
				pChildFrame->SetActiveView( pNewView );
				pNewView->OnInitialUpdate( );
			}

			// if no active child frame, maximize this frame
			CMainFrame * pMainFrame = AfxGetMainFrame();
			if( pMainFrame )
			{
				CFrameWnd * pActiveFrame = AfxGetMainFrame()->GetActiveFrame();
				if( !pActiveFrame || !pActiveFrame->IsKindOf(RUNTIME_CLASS(CChildFrame)) )
					pChildFrame->MDIMaximize();
			}
		}
	}
	
	if( pChildFrame )
	{
		// activate it
		pChildFrame->MDIActivate();
		if( bMaximized )
			pChildFrame->MDIMaximize();
		else
			pChildFrame->ShowWindow( SW_SHOW );
	}

	return TRUE;
}
Пример #22
0
void CSListView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) 
{
	// TODO: Add your specialized code here and/or call the base class
	if( UPDATE_HINT_SLISTVIEW != lHint )
		return;
	if( IsWindowVisible() )
		SetFocus( );
	int	nColumnCount	=	m_Grid.GetColumnCount();
	if( nColumnCount <= 0 )
		return;

	if( GetParentFrame()->GetSafeHwnd() != AfxGetMainFrame()->GetActiveFrame()->GetSafeHwnd() )
	{
		m_bShouldUpdate	=	TRUE;
		return;
	}
	m_bShouldUpdate	=	FALSE;

	CStockContainer & container = AfxGetSListStockContainer();
	container.Lock();

	m_Grid.DeleteNonFixedRows();

	// Progress
	CMainFrame	* pMainFrame = AfxGetMainFrame();
	if( pMainFrame )
	{
		pMainFrame->ShowProgressBar( );
		pMainFrame->SetProgress( 0 );
		pMainFrame->SetMessageText( IDS_MAINFRAME_WAITING );
	}

	CUIntArray	anParams;
	anParams.SetSize( 0, nColumnCount );
	for( int nCol=0; nCol < nColumnCount; nCol ++ )
	{
		LPARAM	lParam	=	m_Grid.GetItemData( 0, nCol );
		anParams.Add( lParam );
	}

	CRect rectClient;
	GetClientRect( &rectClient );
	int nPageCount = 1 + rectClient.Height() / abs(m_Grid.GetFixedRowHeight()) + 1;

	for( int i=0; i<container.GetSize(); i++ )
	{
		CStockInfo & info = container.GetStockInfoByID(i);

		int nRow = m_Grid.InsertRow( info.GetStockName() );
		m_Grid.SetItemData( nRow, 0, i );

		for( int nCol=0; nCol<anParams.GetSize(); nCol++ )
		{
			m_Grid.SetItemFormat( nRow, nCol, DT_CENTER|DT_VCENTER|DT_SINGLELINE );
			m_Grid.SetItemText( nRow, nCol, AfxGetVariantDispString( anParams[nCol], info, &container ) );
			m_Grid.SetItemBkColour( nRow, nCol, AfxGetProfile().GetColor(CColorClass::clrSListBK) );
			m_Grid.SetItemFgColour( nRow, nCol, AfxGetVariantColor( anParams[nCol], info ) );
			if( anParams[nCol] == SLH_DATE )
				m_Grid.SetColumnWidth( nCol, 80 );
			if( anParams[nCol] == SLH_CODE )
				m_Grid.SetColumnWidth( nCol, 60 );
		}

		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/container.GetSize() );
	}

	// Set Average and Weight Average
//	SetAverageItem( m_Grid, container, FALSE );

	// Sort If Needed
	if( -1 != m_nColSort )
	{
		LPARAM	lParam	=	m_Grid.GetItemData( 0, m_nColSort );
		if( lParam >= 0 )
		{
			CStockContainer::m_pSortContainer	=	&container;
			container.m_nSortVariantID	=	lParam;
			container.m_bSortAscend		=	m_bSortAscend;
			m_Grid.SortItems( ItemCompareFunc, 0, TRUE );
		}
	}

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

	if( m_bFirstUpdate )
		m_Grid.AutoSizeColumns( );
	else
		m_Grid.SetColumnWidth( 0, 80 );
	m_bFirstUpdate	=	FALSE;
	m_Grid.Invalidate( );

	SendRequestQuote(TRUE);

	container.UnLock();
}
Пример #23
0
BOOL CChildFrame::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	CMainFrame * pMainFrame = AfxGetMainFrame( );
	if( WM_SYSKEYDOWN == pMsg->message
		|| WM_SYSKEYUP == pMsg->message 
		|| WM_SYSCHAR == pMsg->message )
	{
		if( pMainFrame && VK_F4 == pMsg->wParam )
		{
			pMainFrame->PostMessage( WM_CLOSE );
			return TRUE;
		}
	}
	else if( WM_RBUTTONUP == pMsg->message
		|| WM_RBUTTONDOWN == pMsg->message
		|| WM_NCRBUTTONUP == pMsg->message
		|| WM_NCRBUTTONDOWN == pMsg->message )
	{
		CWnd* pWnd = CWnd::FromHandlePermanent(pMsg->hwnd);
		CView * pView = DYNAMIC_DOWNCAST( CView, pWnd );
		if( NULL == pView )
			pView = GetActiveView();
		
		UINT	nMenuID	=	0;
		if( pView && pView->IsKindOf(RUNTIME_CLASS(CWizardView)) )
			nMenuID	=	IDR_POPUP_WIZARDVIEW;
		else if( pView && pView->IsKindOf(RUNTIME_CLASS(CSimuView)) )
			nMenuID	=	IDR_POPUP_SIMUVIEW;
		else if( pView && pView->IsKindOf(RUNTIME_CLASS(CSListView)) )
			nMenuID	=	IDR_POPUP_SLISTVIEW;
		else if( pView && pView->IsKindOf(RUNTIME_CLASS(CGraphView)) )
		{
			pView->PostMessage(WM_USER_MYRBUTTONDOWN,pMsg->wParam,pMsg->lParam);
			nMenuID	=	IDR_POPUP_GRAPHVIEW;
		}
		else if( pView && pView->IsKindOf(RUNTIME_CLASS(CRealTimeView)) )
			nMenuID	=	IDR_POPUP_REALTIMEVIEW;
		else if( pView && pView->IsKindOf(RUNTIME_CLASS(CMultiSortView)) )
			nMenuID	=	IDR_POPUP_MULTISORTVIEW;
		else if( pView && pView->IsKindOf(RUNTIME_CLASS(CBaseView)) )
			nMenuID	=	IDR_POPUP_BASEVIEW;
		else if( pView && pView->IsKindOf(RUNTIME_CLASS(CSelectorView)) )
			nMenuID	=	IDR_POPUP_SETTING;
		else if( pView && pView->IsKindOf(RUNTIME_CLASS(CStrategyView)) )
			nMenuID	=	IDR_POPUP_SIMUVIEW;
		else if( pView && pView->IsKindOf(RUNTIME_CLASS(CGroupView)) )
			nMenuID	=	IDR_POPUP_SETTING;
		else if( pView && pView->IsKindOf(RUNTIME_CLASS(CTechsView)) )
			nMenuID	=	IDR_POPUP_SETTING;

		if( pMainFrame && 0 != nMenuID )
		{
			if( pWnd && WM_RBUTTONUP == pMsg->message )
			{
				CPoint pt;
				pt.x = LOWORD(pMsg->lParam);
				pt.y = HIWORD(pMsg->lParam);
				pWnd->ClientToScreen(&pt);
				
				CMenu	menu;
				if( menu.LoadMenu( nMenuID ) )
				{
					CMenu	*	pMenu	=	menu.GetSubMenu(0);
					for( UINT nMenu=0; pMenu && nMenu<pMenu->GetMenuItemCount(); nMenu++ )
					{
						CMenu	*	pPopupMenu	=	pMenu->GetSubMenu(nMenu);
						pMainFrame->InitMenuPopup( pPopupMenu );
					}
				
					/* ProfUIS Using Code
					CExtPopupMenuWnd * pPopupWnd = new CExtPopupMenuWnd;
					VERIFY( pPopupWnd->UpdateFromMenu( pMainFrame->GetSafeHwnd(), &menu, true, true ) );
					VERIFY( pPopupWnd->TrackPopupMenu( TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, pMainFrame->GetSafeHwnd() ) );
					*/
					VERIFY( pMenu->TrackPopupMenu( TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, pMainFrame ) );
				}
			}
			return TRUE;
		}
	}

	/* ProfUIS Using Code
	if( pMainFrame && pMainFrame->m_wndMenuBar.TranslateMainFrameMessage(pMsg) )
		return TRUE;
	*/

	return CMDIChildWnd::PreTranslateMessage(pMsg);
}
Пример #24
0
BOOL CPPageBase::OnApply()
{
    AfxGetMainFrame()->PostMessage(WM_SAVESETTINGS);
    return __super::OnApply();
}
Пример #25
0
BOOL CALLBACK LoadProgram( HWND hWnd, int nMinProgress, int nMaxProgress )
{
	int nMin = nMinProgress;
	int nMax = nMaxProgress;
	int nRange = nMaxProgress-nMinProgress;
	CStkUIApp * pApp = AfxGetStkUIApp();
	if( NULL == pApp )
		return FALSE;

	CStaticDoc * pStaticDoc = pApp->GetStaticDoc();
	CMainFrame * pMainFrame = AfxGetMainFrame();

	HINSTANCE hInstanceOld = AfxGetResourceHandle();
	AfxSetResourceHandle( AfxGetInstanceHandle() );

	SendMessage( hWnd, WM_USER_STARTUP_PROGRESS, nMin, 0 );

	AfxGetStockContainer().Load( &AfxGetDB(), NULL, NULL );
	AfxGetDomainContainer().Load( AfxGetProfile().GetDomainFile() );
	AfxGetGroupContainer().Load( AfxGetProfile().GetGroupFile() );
	SendMessage( hWnd, WM_USER_STARTUP_PROGRESS, nMin+nRange*4/30, 0 );

	pMainFrame->m_SearchBox.InitStocks( TRUE, TRUE, TRUE );
	//pMainFrame->m_DateBox.InitDates( );
	SendMessage( hWnd, WM_USER_STARTUP_PROGRESS, nMin+nRange*8/30, 0 );

	// Open Simulation Strategy
	if( NULL == pApp->GetFirstStrategyPosition() )
	{
		if( 0 == pApp->OpenLastOpenedStrategy( ) )
			pApp->OpenDefaultStrategy( );
	}
	SendMessage( hWnd, WM_USER_STARTUP_PROGRESS, nMin+nRange*12/30, 0 );

	// Show Views
	//if( !pStaticDoc->GetViewIfExist( RUNTIME_CLASS(CWizardView) ) )
	//	pStaticDoc->ShowStaticView( RUNTIME_CLASS(CWizardView), TRUE );
	//SendMessage( hWnd, WM_USER_STARTUP_PROGRESS, nMin+nRange*14/30, 0 );
	//if( !pStaticDoc->GetViewIfExist( RUNTIME_CLASS(CSimuView) ) )
	//	pStaticDoc->ShowStaticView( RUNTIME_CLASS(CSimuView), TRUE );
	//SendMessage( hWnd, WM_USER_STARTUP_PROGRESS, nMin+nRange*16/30, 0 );
	if( !pStaticDoc->GetViewIfExist( RUNTIME_CLASS(CSListView) ) )
		pStaticDoc->ShowStaticView( RUNTIME_CLASS(CSListView), TRUE );
	SendMessage( hWnd, WM_USER_STARTUP_PROGRESS, nMin+nRange*18/30, 0 );
	//if( !pStaticDoc->GetViewIfExist( RUNTIME_CLASS(CRealTimeView) ) )
	//	pStaticDoc->ShowStaticView( RUNTIME_CLASS(CRealTimeView), TRUE );
	//SendMessage( hWnd, WM_USER_STARTUP_PROGRESS, nMin+nRange*20/30, 0 );
	//if( !pStaticDoc->GetViewIfExist( RUNTIME_CLASS(CMultiSortView) ) )
	//	pStaticDoc->ShowStaticView( RUNTIME_CLASS(CMultiSortView), TRUE );
	//SendMessage( hWnd, WM_USER_STARTUP_PROGRESS, nMin+nRange*22/30, 0 );
	//if( !pStaticDoc->GetViewIfExist( RUNTIME_CLASS(CGraphView) ) )
	//	pStaticDoc->ShowStaticView( RUNTIME_CLASS(CGraphView), TRUE );
	//SendMessage( hWnd, WM_USER_STARTUP_PROGRESS, nMin+nRange*24/30, 0 );
	//if( !pStaticDoc->GetViewIfExist( RUNTIME_CLASS(CBaseView) ) )
	//	pStaticDoc->ShowStaticView( RUNTIME_CLASS(CBaseView), TRUE );
	//SendMessage( hWnd, WM_USER_STARTUP_PROGRESS, nMin+nRange*26/30, 0 );
	//if( !pStaticDoc->GetViewIfExist( RUNTIME_CLASS(CInfoView) ) )
	//	pStaticDoc->ShowStaticView( RUNTIME_CLASS(CInfoView), TRUE );
	//SendMessage( hWnd, WM_USER_STARTUP_PROGRESS, nMin+nRange*28/30, 0 );
	//if( !pStaticDoc->GetViewIfExist( RUNTIME_CLASS(CSelectorView) ) )
	//	pStaticDoc->ShowStaticView( RUNTIME_CLASS(CSelectorView), TRUE );

	AfxSwitchToStaticView( RUNTIME_CLASS(CSListView) );

	AfxGetProfile().SetCurrentStock( STKLIB_CODE_SZZS, FALSE );
	pMainFrame->m_SearchBox.SetCurrentWindowText( );
	//pMainFrame->m_DateBox.SetWindowPos(NULL,0,0,135,200,SWP_NOMOVE|SWP_SHOWWINDOW|SWP_NOZORDER|SWP_NOREDRAW);

	AfxBeginThread( LoadKDataCacheMain, NULL, THREAD_PRIORITY_NORMAL);

	SendMessage( hWnd, WM_USER_STARTUP_PROGRESS, nMax, 0 );

	AfxSetResourceHandle( hInstanceOld );

	return TRUE;
}
Пример #26
0
void CSListView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) 
{
	// TODO: Add your specialized code here and/or call the base class
	if( UPDATE_HINT_SLISTVIEW != lHint )
		return;
	if( IsWindowVisible() )
		SetFocus( );
	int	nColumnCount	=	m_Grid.GetColumnCount();
	if( nColumnCount <= 0 )
		return;

	if( GetParentFrame()->GetSafeHwnd() != AfxGetMainFrame()->GetActiveFrame()->GetSafeHwnd() )
	{
		m_bShouldUpdate	=	TRUE;
		return;
	}
	m_bShouldUpdate	=	FALSE;

	CStockContainer & container = AfxGetSListStockContainer();
	container.Lock();

	m_Grid.DeleteNonFixedRows();

	// Progress

	CUIntArray	anParams;
	anParams.SetSize( 0, nColumnCount );
	for( int nCol=0; nCol < nColumnCount; nCol ++ )
	{
		LPARAM	lParam	=	m_Grid.GetItemData( 0, nCol );
		anParams.Add( lParam );
	}

	CRect rectClient;
	GetClientRect( &rectClient );
	int nPageCount = 1 + rectClient.Height() / abs(m_Grid.GetFixedRowHeight()) + 1;
/** disabled 
	for( int i=0; i<container.GetSize(); i++ )
	{
		CStockInfo & info = container.GetStockInfoByID(i);

		int nRow = m_Grid.InsertRow( info.GetStockName() );
		m_Grid.SetItemData( nRow, 0, i );

		for( int nCol=0; nCol<anParams.GetSize(); nCol++ )
		{
			m_Grid.SetItemFormat( nRow, nCol, DT_CENTER|DT_VCENTER|DT_SINGLELINE );
			m_Grid.SetItemText( nRow, nCol, AfxGetVariantDispString( anParams[nCol], info, &container ) );
			m_Grid.SetItemBkColour( nRow, nCol, AfxGetProfile().GetColor(CColorClass::clrSListBK) );
			m_Grid.SetItemFgColour( nRow, nCol, AfxGetVariantColor( anParams[nCol], info ) );
			if( anParams[nCol] == SLH_DATE )
				m_Grid.SetColumnWidth( nCol, 80 );
		}

		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/container.GetSize() );
	}

	// Set Average and Weight Average
	SetAverageItem( m_Grid, container, FALSE );

	// Sort If Needed
	if( -1 != m_nColSort )
	{
		LPARAM	lParam	=	m_Grid.GetItemData( 0, m_nColSort );
		if( lParam >= 0 )
		{
			CStockContainer::m_pSortContainer	=	&container;
			container.m_nSortVariantID	=	lParam;
			container.m_bSortAscend		=	m_bSortAscend;
			m_Grid.SortItems( ItemCompareFunc, 0, TRUE );
		}
	}

*/
	for(int i= 0;i<1;i++)
	{
		int nRow = m_Grid.InsertRow( "sz002376");
		m_Grid.SetItemData( nRow, 0, i );
        const char * paramValues [] = {"新北洋","sz002376","1000","1000","1000","17.74","19.08","17740","-1340.0"};
		for( int nCol=0; nCol<9; nCol++ )
		{
			m_Grid.SetItemFormat( nRow, nCol, DT_CENTER|DT_VCENTER|DT_SINGLELINE );
			m_Grid.SetItemText( nRow, nCol, paramValues[nCol] );
			m_Grid.SetItemBkColour( nRow, nCol, AfxGetProfile().GetColor(CColorClass::clrSListBK) );
			//m_Grid.SetItemFgColour( nRow, nCol, );
			if( anParams[nCol] == SLH_DATE )
				m_Grid.SetColumnWidth( nCol, 80 );
		}
	}

	int nRow = m_Grid.InsertRow( "summary");
	//m_Grid.SetItemData( nRow, 0, 1 );
	 const char * sumValues [] = {"","","","","","","合计(人民币)","17740","-1340.0"};
	 
	 for( int ic=0; ic<9; ic++ )
	 {
		 m_Grid.SetItemFormat( nRow, ic, DT_CENTER|DT_VCENTER|DT_SINGLELINE );
		 m_Grid.SetItemText( nRow, ic, sumValues[ic] );
		 m_Grid.SetItemBkColour( nRow, 0, AfxGetProfile().GetColor(CColorClass::clrSListBK) );
	 }

	 nRow = m_Grid.InsertRow( "blank");
	 m_Grid.SetItemText( nRow, 0, "" );
	 m_Grid.SetItemBkColour( nRow, 0, AfxGetProfile().GetColor(CColorClass::clrSListBK) );
	//m_Grid.SetItemData( nRow, 0, 1 );

	 nRow = m_Grid.InsertRow( "allheader");
	 const char * allValues [] = {"币种","资金余额","可用资金","可取资金","证券市值","资产总值","","",""};
	 for( ic=0; ic<9; ic++ )
	 {
		 m_Grid.SetItemFormat( nRow, ic, DT_CENTER|DT_VCENTER|DT_SINGLELINE );
		 m_Grid.SetItemText( nRow, ic, allValues[ic] );
		 m_Grid.SetItemBkColour( nRow, ic, AfxGetProfile().GetColor(CColorClass::clrSListBK) );
		 m_Grid.SetItemFgColour( nRow, ic, 0x00ff0000 );
		 LOGFONT *pfont = m_Grid.GetItemFont(nRow,ic);
		 pfont->lfWeight = 700;
		 m_Grid.SetItemFont(nRow,ic,pfont);
	 }

	 nRow = m_Grid.InsertRow( "alldata");
	 const char * alldataValues [] = {"人民币","2163.99","2163.99","2163.99","17740","19903.99","","",""};
	 for( ic=0; ic<9; ic++ )
	 {
		 m_Grid.SetItemFormat( nRow, ic, DT_CENTER|DT_VCENTER|DT_SINGLELINE );
		 m_Grid.SetItemText( nRow, ic, alldataValues[ic] );
		 m_Grid.SetItemBkColour( nRow, ic, AfxGetProfile().GetColor(CColorClass::clrSListBK) );
	 }



	if( m_bFirstUpdate )
		m_Grid.AutoSizeColumns( );
	else
		m_Grid.SetColumnWidth( 0, 80 );
	m_bFirstUpdate	=	FALSE;
	m_Grid.Invalidate( );

	//SendRequestQuote(TRUE);

	container.UnLock();
}
Пример #27
0
// 快捷键
void AfxExecuteAccelerator( UINT nAcce )
{
	HWND	hWnd	=	AfxGetMainFrame()->GetSafeHwnd();
	switch( nAcce )
	{
	case ACCE_01:		// 热键F1
		::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_REPORTDETAIL, 0 );
		break;
	case ACCE_02:		// 热键F2
		::PostMessage( hWnd, WM_COMMAND, ID_VIEW_SLIST, 0 );
		break;
	case ACCE_03:		// 热键F3
		::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_VIEWSZZS, 0 );
		break;
	case ACCE_04:		// 热键F4
		::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_VIEWSZNCZ, 0 );
		break;
	case ACCE_05:		// 热键F5
		{
			CView * pView = AfxGetStaticDoc()->GetActiveView();
			if( pView && pView->IsKindOf( RUNTIME_CLASS(CGraphView) ) )
				::PostMessage( hWnd, WM_COMMAND, ID_VIEW_REALTIME, 0 );
			else
				::PostMessage( hWnd, WM_COMMAND, ID_VIEW_GRAPH, 0 );
		}
		break;
	case ACCE_06:		// 热键F6
		::PostMessage( hWnd, WM_COMMAND, ID_SLIST_GROUPSELF, 0 );
		break;
	case ACCE_07:		// 热键F7
		::PostMessage( hWnd, WM_COMMAND, ID_VIEW_MULTISORT, 0 );
		break;
	case ACCE_08:		// 热键F8
		break;
	case ACCE_09:		// 热键F9
		break;
	case ACCE_10:		// 热键F10
		::PostMessage( hWnd, WM_COMMAND, ID_VIEW_F10, 0 );
		break;
	case ACCE_1:		// 上A报价
		::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SHAA, 0 );
		break;
	case ACCE_2:		// 上B报价
		::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SHAB, 0 );
		break;
	case ACCE_3:		// 深A报价
		::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SZNA, 0 );
		break;
	case ACCE_4:		// 深B报价
		::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SZNB, 0 );
		break;
	case ACCE_5:		// 上债报价
		::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SHABOND, 0 );
		break;
	case ACCE_6:		// 深债报价
		::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SZNBOND, 0 );
		break;
	case ACCE_61:		// 上A涨跌
		::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SHAASORTDP, 0 );
		break;
	case ACCE_62:		// 上B涨跌
		::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SHABSORTDP, 0 );
		break;
	case ACCE_63:		// 深A涨跌
		::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SZNASORTDP, 0 );
		break;
	case ACCE_64:		// 深B涨跌
		::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SZNBSORTDP, 0 );
		break;
	case ACCE_65:		// 上债涨跌
		::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SHABONDSORTDP, 0 );
		break;
	case ACCE_66:		// 深债涨跌
		::PostMessage( hWnd, WM_COMMAND, ID_SLIST_SZNBONDSORTDP, 0 );
		break;
	case ACCE_71:		// 上证信息
		break;
	case ACCE_72:		// 深证信息
		break;
	case ACCE_73:		// 券商信息
		break;
	case ACCE_81:		// 上A综合
		::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_MSSZAG, 0 );
		break;
	case ACCE_82:		// 上B综合
		::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_MSSZBG, 0 );
		break;
	case ACCE_83:		// 深A综合
		::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_MSSZNAG, 0 );
		break;
	case ACCE_84:		// 深B综合
		::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_MSSZNBG, 0 );
		break;
	case ACCE_85:		// 上债综合
		::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_MSSZZQ, 0 );
		break;
	case ACCE_86:		// 深债综合
		::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_MSSZNZQ, 0 );
		break;
	case ACCE_LBDK:		// 量比多空
		::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_LBDK, 0 );
		break;
	case ACCE_MMLD:		// 买卖力道
		::PostMessage( hWnd, WM_COMMAND, ID_REALTIME_MMLD, 0 );
		break;
	default:
		ASSERT( FALSE );
	}
}
Пример #28
0
void CSListView::OnSelchangeWorktab(NMHDR* pNMHDR, LRESULT* pResult) 
{
	int nCur = m_wndWorkTab.GetCurtab();
	CRect	rect = m_wndWorkTab.GetTabRect( nCur );
	CMenu	menu;
	switch( nCur )
	{
	case SL_WORKTAB_CLASS:
		/*
		if( menu.LoadMenu( IDR_MENU_SLISTBARCLASS ) )
		{
			CMenu* pPopupMenu = menu.GetSubMenu(0);
			if( pPopupMenu )
				pPopupMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_BOTTOMALIGN | TPM_LEFTBUTTON , rect.left+3, rect.top+6, AfxGetMainFrame() );
		}*/
		break;
	case SL_WORKTAB_A:
		SetCurrentStatus( CStockContainer::typeA, NULL, -1 );
		break;
	case SL_WORKTAB_SZNB:
		SetCurrentStatus( CStockContainer::typeClassSznb, NULL, -1 );
		break;
	case SL_WORKTAB_SHB:
		SetCurrentStatus( CStockContainer::typeClassShab, NULL, -1 );
		break;
	case SL_WORKTAB_BOND:
		SetCurrentStatus( CStockContainer::typeBond, NULL, -1 );
		break;
	case SL_WORKTAB_FUND:
		SetCurrentStatus( CStockContainer::typeFund, NULL, -1 );
		break;
	case SL_WORKTAB_SELF:
		{
			CString	strSelf;
			strSelf.LoadString( IDS_DOMAIN_SELF );
			SetCurrentStatus( CStockContainer::typeGroup, strSelf, -1 );
		}
		break;
	case SL_WORKTAB_GROUP:
		if( menu.LoadMenu( IDR_MENU_SLISTBARGROUP ) )
		{
			CMenu* pPopupMenu = menu.GetSubMenu(0);
			if( pPopupMenu )
				pPopupMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_BOTTOMALIGN | TPM_LEFTBUTTON , rect.left+3, rect.top+6, AfxGetMainFrame() );
		}
		break;
	case SL_WORKTAB_DOMAIN:
		if( menu.LoadMenu( IDR_MENU_SLISTBARDOMAIN ) )
		{
			CMenu* pPopupMenu = menu.GetSubMenu(0);
			if( pPopupMenu )
				pPopupMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_BOTTOMALIGN | TPM_LEFTBUTTON , rect.left+3, rect.top+6, AfxGetMainFrame() );
		}
		break;
	default:;
	}
	
	*pResult = 0;
}