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

📄 mainfrm.cpp

📁 一个串口通信的程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:

	m_Framework.Add(pRealTimeSpliter,pRTLeftView);
	m_Framework.Add(pRealTimeSpliter,pRTRightView);
	m_Framework.Add(pRTLeftView,pRTLeftTopView);
	m_Framework.Add(pRTLeftView,pRTLeftBottonView);
	m_Framework.Add(pRTRightView,pRTRightTopView);
	m_Framework.Add(pRTRightView,pRTRightBottonView);

	m_Framework.Create(this);
/*	m_Framework.ShowTab(m_Framework.Get(2),FALSE);
	m_Framework.ShowTab(m_Framework.Get(3),FALSE);
	m_Framework.ShowTab(m_Framework.Get(4),FALSE);
	m_Framework.ShowTab(m_Framework.Get(5),FALSE);
	m_Framework.ShowTab(m_Framework.Get(6),FALSE);
	m_Framework.ShowTab(m_Framework.Get(7),FALSE);
	m_Framework.ShowTab(m_Framework.Get(8),FALSE);
*/	
	TVisualFrameworkIterator it(m_Framework);
	while (!it.End()) {
		TVisualObject *pObject = it.Get();
		it++;
	}
	
	m_bSplitterCreated=TRUE;

	SetTimer(2012,1000,NULL);
	SetTimer(2013,60000,NULL);
	return TRUE;}

BOOL CMainFrame::OnQueryEndSession() 
{
	if (!CFrameWnd::OnQueryEndSession())
		return FALSE;
	
	// 操作系统开始关闭
	m_bShutDown = TRUE;
	
	return TRUE;
}

void CMainFrame::OnEndSession(BOOL bEnding) 
{
	CFrameWnd::OnEndSession(bEnding);
	
	// 如果系统关闭不成功
	if( bEnding == FALSE )
		m_bShutDown = FALSE;
	else
		m_bShutDown = TRUE;
	
}

void CMainFrame::OnDestroy() 
{
	CFrameWnd::OnDestroy();
	
  m_Framework.Destroy();
	
}

void CMainFrame::OnSize(UINT nType, int cx, int cy) 
{
	CFrameWnd::OnSize(nType, cx, cy);

	CRect rect;
	this->GetClientRect( &rect );
	if( m_bSplitterCreated )  // m_bSplitterCreated set in OnCreateClient
	{
		CSplitterWnd * pSplitterWnd;
		pSplitterWnd=(CSplitterWnd *)m_Framework.Get(2)->GetSafeWnd();
		pSplitterWnd->GetClientRect( &rect );
		pSplitterWnd->SetColumnInfo(0, rect.Width()*3/5, 10);
		pSplitterWnd->SetColumnInfo(1, rect.Width()*2/5, 10);
		pSplitterWnd->RecalcLayout();

		pSplitterWnd=(CSplitterWnd *)m_Framework.Get(9)->GetSafeWnd();
		pSplitterWnd->GetClientRect( &rect );
		pSplitterWnd->SetRowInfo(0, rect.Height()*3/4, 10);
		pSplitterWnd->SetRowInfo(1, rect.Height()/4, 10);
		pSplitterWnd->RecalcLayout();

		pSplitterWnd=(CSplitterWnd *)m_Framework.Get(11)->GetSafeWnd();
		pSplitterWnd->GetClientRect( &rect );
		pSplitterWnd->SetRowInfo(0, 10, 10);
		pSplitterWnd->SetRowInfo(1, rect.Height()-10, 10);
		pSplitterWnd->RecalcLayout();
	}
}

LRESULT CMainFrame::OnTrayIconNotify(WPARAM wParam, LPARAM lParam)
{
	return m_TrayIcon.OnTrayNotification(wParam, lParam);
}

void CMainFrame::OnSysCommand( UINT nID, LPARAM lParam )
{
	// 拦截"关闭窗口"按钮
	if( nID == SC_CLOSE ) {
//		CFrameWnd::OnSysCommand( SC_ICON, lParam );
		ShowWindow( SW_HIDE );
	}
	else {
		CFrameWnd::OnSysCommand( nID, lParam );
		if( nID == SC_ICON )
			ShowWindow( SW_HIDE );
	}
}


void CMainFrame::OnTrayiconActive() 
{
	if( IsIconic() )
		ShowWindow( SW_RESTORE );
	else if( GetForegroundWindow() == this )
		SendMessage( WM_SYSCOMMAND, SC_ICON );	
	SetForegroundWindow();
}

void CMainFrame::OnUpdateTrayiconActive(CCmdUI* pCmdUI) 
{
	CString s;
	s.LoadString( IsIconic() ? IDS_TIMENU_SHOW : IDS_TIMENU_HIDE );
	pCmdUI->SetText( (LPCTSTR)s );
//	pCmdUI->Enable( !m_bOptionSheetActive && !m_bSendDialogActive );
	
}

void CMainFrame::OnTest() 
{
	CBatchModiDlg dlg;
	dlg.m_bAllowSave=true;
	dlg.type=1;
	dlg.DoModal();
}

void CMainFrame::OnViewBringtotop() 
{
	if( m_bTopMost )
		SetWindowPos( &wndNoTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE );
	else
		SetWindowPos( &wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE );
	
	m_bTopMost = !m_bTopMost;	
}

void CMainFrame::OnUpdateViewBringtotop(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck( m_bTopMost );	
}

void CMainFrame::OnYb() 
{
	CBatchModiDlg dlg;
	dlg.m_bAllowSave=true;
	dlg.type=1;
	dlg.title="仪表设置";
	if(dlg.DoModal()==IDOK)
		ReApp();
}

void CMainFrame::OnCd() 
{
	CBatchModiDlg dlg;
	dlg.m_bAllowSave=true;
	dlg.type=2;
	dlg.title="测点设置";
	if(dlg.DoModal()==IDOK)
		ReApp();
}

void CMainFrame::OnCs() 
{
	CBatchModiDlg dlg;
	dlg.m_bAllowSave=true;
	dlg.type=3;
	dlg.title="参数名称地址设置";
	if(dlg.DoModal()==IDOK)
		ReApp();
}

void CMainFrame::OnRt() 
{
	CBatchModiDlg dlg;
	dlg.m_bAllowSave=true;
	dlg.type=4;
	dlg.title="实时数据采集设置";
	if(dlg.DoModal()==IDOK)
		ReApp();
}

void CMainFrame::OnTimer(UINT nIDEvent) 
{
	if(nIDEvent==2012 && canread==true)
	{
		for(int i=0;i<arrRT.GetSize();i++)
		{
			NPRT nprt=arrRT.GetAt(i);
			for(int j=0;j<RTCount;j++)
			{
				if(xlfdata[j].rtid==nprt->rtid)
				{
					nprt->hisory[nprt->hendp]=(xlfdata[j].cstype==0)?xlfdata[j].lval:((xlfdata[j].cstype==1)?xlfdata[j].sval:xlfdata[j].dval);
					++(nprt->hendp) %= 200;
					break;
				}
			}
		}
		::SendMessage(m_Framework.Get(12)->GetSafeWnd()->m_hWnd,WM_SHOWVALUE,0,0);
		::SendMessage(m_Framework.Get(1)->GetSafeWnd()->m_hWnd,WM_SHOWVALUE,0,0);
	}
	if(nIDEvent==2013 && canread==true)
	{
		COleDateTime dt;
		dt=dt.GetCurrentTime();
		int min=dt.GetMinute();
		int hour=dt.GetHour();
		min=hour*60+min;
		NPRT nprt;
		for(int i=0;i<arrRT.GetSize();i++)
		{
			nprt=arrRT.GetAt(i);
		}
		//每分钟
		{
			for(int i=0;i<arrRT.GetSize();i++)
			{
				nprt=arrRT.GetAt(i);
				if(nprt->saving_cycle!=0)
				{
					int rtid;
					double value=0;
					rtid=nprt->rtid;
					for(int j=0;j<RTCount;j++)
					{
						if(xlfdata[j].rtid==rtid)break;
					}
//					if(xlfdata[j].valuestate==1)		//有效
					{
						value=(xlfdata[j].cstype==0)?(double)xlfdata[j].lval:(xlfdata[j].cstype==1)?(double)xlfdata[j].sval:xlfdata[j].dval;
						::WriteDataToFile(rtid,value,xlfdata[j].valuestate+100);
					}
				}
			}
		}
		if(min % 5 == 0) //五分钟
		{
		}
		if(min % 15 == 0) //十五分钟
		{
		}
		if(min % 30 == 0) //三十分钟
		{
		}
		if(min % 60 == 0) //一小时
		{
		}
		if(min % (60*6) == 0) //六小时
		{
		}
		if(min % (60*24) == 0)	//一天
		{
		}
	}
	CFrameWnd::OnTimer(nIDEvent);
}

void CMainFrame::ReApp()
{
	EndRT();
	BeginRT();
	::SendMessage(m_Framework.Get(12)->GetSafeWnd()->m_hWnd,WM_INITITEM,0,0);
}

void CMainFrame::OnCsrw() 
{
	CBatchModiDlg dlg;
	dlg.m_bAllowSave=true;
	dlg.type=5;
	dlg.title="仪表参数读取与下装";
	dlg.DoModal();
}

void CMainFrame::OnViewOption() 
{
	if( m_bOptionSheetActive == TRUE )
		return;
	m_bOptionSheetActive = TRUE;

	COptionSheet OptionSheet( "DataSvrEx 选项" );
	OptionSheet.m_psh.dwFlags |= PSH_NOAPPLYNOW;	// 我不要"应用"按钮
	OptionSheet.m_pageProgram.m_autoRun=m_autoRun;
	if( OptionSheet.DoModal() == IDOK ) {
		m_autoRun=OptionSheet.m_pageProgram.m_autoRun;

/*		if(m_autoRun==0)
		{
			if( SV_ServiceRegister( UNREGISTER_SERVICE ) ) {
				SV_StartService( UNREGISTER_SERVICE );
			}
		}
		else if(m_autoRun==1)
		{
			if( SV_ServiceRegister( REGISTER_SERVICE ) ) {
				SV_StartService( REGISTER_SERVICE );
			}
		}
		else
		{
			if(m_bShutDown=true)
			{
				if( SV_ServiceRegister( REGISTER_SERVICE ) ) {
					SV_StartService( REGISTER_SERVICE );
				}
			}
			else
			{
				if( SV_ServiceRegister( UNREGISTER_SERVICE ) ) {
					SV_StartService( UNREGISTER_SERVICE );
				}
			}
		}
*/	}

	m_bOptionSheetActive = FALSE;
}

⌨️ 快捷键说明

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