📄 mainfrm.cpp
字号:
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 + -