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

📄 mainfrm.cpp

📁 The application wizard has created this SoccerDoctor application for you. This application not onl
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		m_displayer.OnDeleteVisualObject();
		break;
	case VK_ESCAPE:
		if( m_displayer.GetStyle() & WS_MAXIMIZE){
			m_displayer.doFullScreen();
		}
		break;
	default:
		break;
	}
	CFrameWnd::OnKeyDown(nChar, nRepCnt, nFlags);
}

void CMainFrame::OnMonitorCommand(UINT nID)
{
	switch( nID ) {
	case ID_MONITOR_CONNECT:
		m_soccerMonior.doCommand(CmdConnect);
		break;
	case ID_MONITOR_DISCONNECT:
		m_soccerMonior.doCommand(CmdDisconnect);
		break;
	case ID_MONITOR_RECONNECT:
		m_soccerMonior.doCommand(CmdReconnect);
		break;
	case ID_MONITOR_KICKOFF:
		m_soccerMonior.doCommand(CmdKickoff);
		break;
	case ID_MONITOR_DROPBALL:
		m_soccerMonior.doCommand(CmdDropball,m_displayer.getSelectedPoint());
		break;
	case ID_MONITOR_FOULLEFT:
		m_soccerMonior.doCommand(CmdFoulleft,m_displayer.getSelectedPoint());
		break;
	case ID_MONITOR_FOULRIGHT:
		m_soccerMonior.doCommand(CmdFoulright,m_displayer.getSelectedPoint());
		break;
	case ID_MONITOR_MOVEPLAYER:
		m_soccerMonior.doCommand(CmdMoveplayer,m_displayer.getSelectedSide(),m_displayer.getSelectedNum(),m_displayer.getSelectedPoint());
	case ID_MONITOR_DISCARDPLAYER:
		m_soccerMonior.doCommand(CmdDiscard,m_displayer.getSelectedSide(),m_displayer.getSelectedNum());
		break;
	case ID_MONITOR_SAVELOG:
		m_logPlayer.DoCommand(CmdSaveLog);
		break;
	default:
		break;
	};
}

void CMainFrame::OnUpdateMonitorCommand(CCmdUI *pCmdUI)
{
	switch( pCmdUI->m_nID ) {
	case ID_MONITOR_CONNECT:
		pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdConnect));
		break;
	case ID_MONITOR_DISCONNECT:
		pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdDisconnect));
		break;
	case ID_MONITOR_RECONNECT:
		pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdReconnect));
		break;
	case ID_MONITOR_KICKOFF:
		pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdKickoff));
		break;
	case ID_MONITOR_DROPBALL:
		pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdDropball));
		break;
	case ID_MONITOR_FOULLEFT:
		pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdFoulleft));
		break;
	case ID_MONITOR_FOULRIGHT:
		pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdFoulright));
        break;
	case ID_MONITOR_DISCARDPLAYER:
		pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdDiscard));
		break;
	case ID_MONITOR_MOVEPLAYER:
		pCmdUI->Enable(m_soccerMonior.getCommandStatus(CmdMoveplayer));
		break;
	default:
		break;
	};
}
void CMainFrame::addDispInfo(const dispinfo_t2* pInfo)
{	
	if( m_logPlayer.addDispInfo(pInfo) ) {// 视觉信息
		m_displayer.SetDisplayInfo(m_logPlayer.GetLastDispInfo());
	}

}

void CMainFrame::cleanAllInfo(void)
{
	m_displayer.SetDisplayInfo(NULL);
	m_logPlayer.DoCommand(CmdClean);
}

void CMainFrame::OnObjectDetails()
{
	m_displayer.OnObjectDetails();
}

void CMainFrame::showLogplay(bool value)
{
	m_displayer.showLogplay(value);
	if(value){
		DisplayCycle(m_logPlayer.GetDisplayInfo());
	}
}

void CMainFrame::OnDispSelectObject(UINT nID)
{
	m_displayer.DoCommand(CmdSelect,nID-ID_DISPLAYER_SELECTLEFT1);
}

void CMainFrame::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	switch (nChar) {
	case ',': 
	case '<': // left
		SendMessage(WM_COMMAND,ID_LOGPLAYER_BACKWARD);
		break;
	case '.':
	case '>':
		SendMessage(WM_COMMAND,ID_LOGPLAYER_FORWARD);
		break;
	case 'L':
	case 'l':
		SendMessage(WM_COMMAND,ID_LOGPLAYER_LOAD);
		break;
	case 'S':
	case 's':
		SendMessage(WM_COMMAND,ID_MONITOR_SAVELOG);
		break;
	case 'X':
	case 'x': // play
		SendMessage(WM_COMMAND,ID_LOGPLAYER_PLAY);
		break;
	case 'C':
	case 'c': // pause
		SendMessage(WM_COMMAND,ID_LOGPLAYER_STOP);
		break;
	case 'V':
	case 'v': // stop
		SendMessage(WM_COMMAND,ID_LOGPLAYER_REWIND);
		break;
	case 'J':
	case 'j': // jump to a cycle
		SendMessage(WM_COMMAND,ID_LOGPLAYER_JUMPTO);
		break;
	case 'B':
	case 'b': // Reverse
		SendMessage(WM_COMMAND,ID_LOGPLAYER_REVERSE);
		break;
	case 'A':
	case 'a': // Acelerate
		SendMessage(WM_COMMAND,ID_LOGPLAYER_ACCELERATE);
		break;
	case 'd':
	case 'D': // Decelerate
		SendMessage(WM_COMMAND,ID_LOGPLAYER_DECELERATE);
		break;
	case 'g':
	case 'G': // DrawingBox
		SendMessage(WM_COMMAND,ID_DRAWINGTOOLS);
		break;
	case 'K':
	case 'k': // kick off
		SendMessage(WM_COMMAND,ID_MONITOR_KICKOFF);
		break;
	case '1': // left 1
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT1);
		break;	
	case '!': // right 1
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT1);
		break;	
	case '2': // left 2
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT2);
		break;
	case '@': // right 2
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT2);
		break;
	case '3': // left 3
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT3);
		break;
	case '#': // right 3
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT3);
		break;
	case '4': // left 4
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT4);
		break;
	case '$': // right 4
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT4);
		break;
	case '5': // left 5
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT5);
		break;
	case '%': // right 5
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT5);
		break;
	case '6': // left 6
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT6);
		break;
	case '^': // right 6
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT6);
		break;
	case '7': // left 7
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT7);
		break;
	case '&': // right 7
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT7);
		break;
	case '8': // left 8
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT8);
		break;
	case '*': // right 8
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT8);
		break;	
	case '9': // left 9
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT9);
		break;
	case '(': // right 9
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT9);
		break;
	case '0': // left 10
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT10);
		break;
	case ')': // right 10
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT10);
		break;
	case '-': // left 11
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTLEFT11);
		break;
	case '_': // right 11
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTRIGHT11);
		break;
	case '~': 
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTNONE);
		break;
	case '`': // ball
		SendMessage(WM_COMMAND,ID_DISPLAYER_SELECTBALL);
		break;
	case 'q':
	case 'Q':
		SendMessage(WM_COMMAND,ID_DISPLAYER_KICKMARGIN);
		break;
	case 'w':
	case 'W':
		SendMessage(WM_COMMAND,ID_DISPLAYER_KICKMARGIN+1);
		break;
	case 'e':
	case 'E':
		SendMessage(WM_COMMAND,ID_DISPLAYER_KICKMARGIN+2);
		break;
	case 'r':
	case 'R':
		SendMessage(WM_COMMAND,ID_DISPLAYER_KICKMARGIN+3);
		break;
	case 't':
	case 'T':
		SendMessage(WM_COMMAND,ID_DISPLAYER_KICKMARGIN+4);
		break;
	case 'y':
	case 'Y':
		SendMessage(WM_COMMAND,ID_DISPLAYER_KICKMARGIN+5);
		break;
	case 'u':
	case 'U':
		SendMessage(WM_COMMAND,ID_DISPLAYER_KICKMARGIN+6);
		break;
	case 'n':
	case 'N':  // new doctor
		SendMessage(WM_COMMAND,ID_SYSTEM_NEW);
		break;
	case 'h':
	case 'H':  // hide/show window
		SendMessage(WM_COMMAND,ID_SYSTEM_HIDE);
		break;
	case 'i':
	case 'I': // 新建连接
		SendMessage(WM_COMMAND,ID_MONITOR_CONNECT);
		break;
	case 'p':
	case 'P': // 重新连接
		SendMessage(WM_COMMAND,ID_MONITOR_RECONNECT);
		break;
	case 'o':
	case 'O': // 断开连接
		SendMessage(WM_COMMAND,ID_MONITOR_DISCONNECT);
		break;
	case 'f':
	case 'F': // 切换窗口
		m_displayer.doFullScreen();
		break;
	case '{':
	case '[':
		SendMessage(WM_COMMAND,ID_TOOLBOX_STATISTICS);
		break;
	case '}':
	case ']':
		SendMessage(WM_COMMAND,ID_TOOLBOX_PRESENT);
		break;
	case '+':
		SendMessage(WM_COMMAND,ID_DISPLAYER_BALLDETAIL);
		break;
	case '=':
		SendMessage(WM_COMMAND,ID_ANALYZER_TYPEXPLORER);
		break;
	case '|':
		SendMessage(WM_COMMAND,ID_DISPLAYER_OFFSIDELINE);
		break;
	case '\\':
		SendMessage(WM_COMMAND,ID_DISPLAYER_PASSCOURSE);
		break;
	default:
		break;
	}
	CFrameWnd::OnChar(nChar, nRepCnt, nFlags);
}


void CMainFrame::OpenLogFile(CString strFile)
{
	m_logPlayer.DoCommand(CmdOpen,strFile);
	DisplayCycle(m_logPlayer.GetDisplayInfo());
}
void CMainFrame::OnNewDoctor()
{
	char strFileName[MAX_FILE_LEN];
	GetModuleFileName(NULL,strFileName,MAX_FILE_LEN);
	ShellExecute(NULL,NULL,strFileName,NULL,NULL,SW_SHOW);
}

void CMainFrame::OnMainFrameHide()
{
	if( GetStyle() & WS_VISIBLE ) { // visible
		ShowWindow(SW_HIDE);
	}else {
		ShowWindow(SW_SHOW);
	}
}

void CMainFrame::OnDrawingtools()
{
	m_displayer.OnDrawingTools();
}

void CMainFrame::OnDropFiles(HDROP hDropInfo)
{
	CFrameWnd::OnDropFiles(hDropInfo);
}

void CMainFrame::OnAutoplayer()
{
	CAutoplayConfiger dlg;
	dlg.DoModal();
}
void CMainFrame::analyzeCycle(const showinfo_t2& info)
{
	m_analyzer.analyzeOneCycleInfo(info);
}

CStatisticDialog* CMainFrame::getStatisticDlg()
{
	while( m_pStatisticDlg == NULL ){
		if( m_pStatisticDlg = new CStatisticDialog(&m_analyzer)){
			m_pStatisticDlg->Create(IDD_STATDIALOG,this);
		}
	}
	return m_pStatisticDlg;
}
void CMainFrame::OnToolboxStatistics()
{
	m_analyzer.statData();
	if( getStatisticDlg()->GetStyle() & WS_VISIBLE ){
		getStatisticDlg()->ShowWindow(SW_HIDE);
	}else{
		getStatisticDlg()->ShowWindow(SW_SHOW);
		getStatisticDlg()->ShowStatistic();
	}
}

const CAnalyzer* CMainFrame::getAnalyzer() const
{
	return &m_analyzer;
}
void CMainFrame::OnToolboxPresent()
{
	m_analyzer.statData();
	m_displayer.OnToolboxPresent();
}

void CMainFrame::OnUpdateSelectBar(CCmdUI *pCmdUI)
{
	int side = m_displayer.getSelectedSide();
	UINT num = m_displayer.getSelectedNum();
	int diff;
	if( side == LEFT ){
		diff = num - 1;
	}else if( side == RIGHT ){
		diff = num + 10;
	}else {
		diff = MAX_PLAYER * 2;
	}
	if( pCmdUI->m_nID - ID_DISPLAYER_SELECTLEFT1 == diff){
		pCmdUI->SetCheck(1);
	}else{
		pCmdUI->SetCheck(0);
	}
}


⌨️ 快捷键说明

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