📄 mainfrm.cpp
字号:
void CMainFrame::OnReset()
{
// TODO: Add your command handler code here
ShowList(false);
nExtFunc = 30;
if(OrganiseData(nExtFunc))
{
SetActionExpain(1,_T("重启动"));
SetActionExpain(2,"");
SetActionExpain(5,END);
nExtFunc = 0;
}
}
void CMainFrame::OnNaturalStatus()
{
// TODO: Add your command handler code here
ShowList(false);
nExtFunc = 30;
if(m_pDoc->SetRTS(true))
if(OrganiseData(nExtFunc))
{
SetActionExpain(1,_T("进入正常监控状态"));
SetActionExpain(2,"");
SetActionExpain(5,END);
nExtFunc = 0;
}
}
void CMainFrame::OnMaintainStatus()
{
// TODO: Add your command handler code here
ShowList(false);
nExtFunc = 30;
if(m_pDoc->SetRTS(false))
if(OrganiseData(nExtFunc))
{
SetActionExpain(1,_T("进入系统维护状态"));
SetActionExpain(2,"");
SetActionExpain(5,END);
nExtFunc = 0;
}
}
void CMainFrame::OnKeyboard()
{
// TODO: Add your command handler code here
ShowList(false);
CDlgKeyboard dlgKeyboard;
dlgKeyboard.DoModal();
}
void CMainFrame::OnKeyboard(int nKeyIndex)
{
CString str = _T("键盘操作");
switch(nKeyIndex)
{
case 7:
str+="(→)";
break;
case 8:
str+="(Enter)";
break;
case 6:
str+="(↓)";
break;
case 4:
str+="(Esc)";
break;
case 2:
str+="(↑)";
break;
case 1:
str+="(+1)";
break;
case 3:
str+="(-1)";
break;
case 5:
str+="(←)";
break;
default:
break;
}
nExtFunc = 31;
if(OrganiseData(nExtFunc,nKeyIndex))
{
SetActionExpain(1,str);
SetActionExpain(2,"");
SetActionExpain(5,END);
nSendFileCount = 1;
nExtFunc = 0;
}
}
void CMainFrame::OnClock()
{
// TODO: Add your command handler code here
ShowList(true);
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnClock();
}
void CMainFrame::OnYk()
{
// TODO: Add your command handler code here
ShowList(true);
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnYk();
}
void CMainFrame::OnYt()
{
// TODO: Add your command handler code here
ShowList(true);
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnYt();
}
void CMainFrame::OnYcYx()
{
// TODO: Add your command handler code here
ShowList(true);
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnYcYx();
}
void CMainFrame::OnManualFrame()
{
// TODO: Add your command handler code here
ShowList(true);
StopSend();
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnManualFrame();
}
void CMainFrame::OnUpdownLoad()
{
// TODO: Add your command handler code here
ShowList(true);
StopSend();
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnUpdownLoad();
}
void CMainFrame::OnStopSend()
{
// TODO: Add your command handler code here
ShowList(true);
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->StopSend();
}
void CMainFrame::OnGuiyueFdk()
{
// TODO: Add your command handler code here
SetSpecialChar(0x01);
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnGuiyueFdk();
}
void CMainFrame::OnUpdateGuiyueFdk(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if(ngyType == GY_FDK)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);
}
void CMainFrame::OnGuiyueCdt()
{
// TODO: Add your command handler code here
SetSpecialChar(0xEB);
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnGuiyueCdt();
}
void CMainFrame::OnUpdateGuiyueCdt(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if(ngyType == GY_CDT)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);
}
void CMainFrame::OnGuiyueBus()
{
// TODO: Add your command handler code here
SetSpecialChar(0xBB);
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnGuiyueModbus();
}
void CMainFrame::OnUpdateGuiyueBus(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if(ngyType == GY_MODBUS)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);
}
void CMainFrame::OnGuiyueDf0420()
{
// TODO: Add your command handler code here
SetSpecialChar(0x7E);
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnGuiyueDf0420();
}
void CMainFrame::OnUpdateGuiyueDf0420(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if((ngyType == GY_DF0420)&&(ngyTypeFlag == GY_TYPE_FLAG_DF0420))
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);
}
void CMainFrame::OnGuiyueDf0241()
{
// TODO: Add your command handler code here
SetSpecialChar(0x7E);
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnGuiyueDf0241();
}
void CMainFrame::OnUpdateGuiyueDf0241(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if((ngyType == GY_DF0420)&&(ngyTypeFlag == GY_TYPE_FLAG_DF0421))
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);
}
void CMainFrame::SetSpecialChar(BYTE byChar)
{
((CDataShowView*)m_wndSplitter2.GetPane(0,0))->SetSpecialChar(byChar);
((CMaintainView*)m_wndSplitter1.GetPane(0,0))->m_sendView->SetSpecialChar(byChar);
}
void CMainFrame::ShowList(bool bShow)
{
((CPreviewPane2*)m_wndSplitter2.GetPane(1,0))->ShowList(bShow);
if(bShow)
{
switch(ngyType)
{
case GY_FDK:
SetSpecialChar(0x01);
break;
case GY_CDT:
case GY_JDXJ:
SetSpecialChar(0xEB);
break;
case GY_DF0420:
SetSpecialChar(0x7E);
break;
case GY_MODBUS:
SetSpecialChar(0xBB);
break;
default:
break;
}
}
else
SetSpecialChar(0x01);
}
void CMainFrame::ClearDataWindow()
{
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->m_sendView->OnClearWindow();
((CDataShowView*)m_wndSplitter2.GetPane(0, 0))->OnClearWindow();
}
//短消息中心设置
void CMainFrame::OnSmssetup()
{
// TODO: Add your command handler code here
bSmsFlag = true;
dlgSms.DoModal();
bSmsFlag = false;
}
//召唤短消息模块的设置
bool CMainFrame::CallSMS()
{
return ((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->CallSMS();
}
void CMainFrame::GetSMSInfo(SMS_SETUP info)
{
if (dlgSms) dlgSms.InitSmsInfo(info);
}
void CMainFrame::SetSMS(SMS_SETUP info)
{
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->SetSMS(info);
}
void CMainFrame::SetupSmsReturn(int n)
{
if (dlgSms) dlgSms.SetupSmsReturn(n);
}
void CMainFrame::OnUnicode()
{
// TODO: Add your command handler code here
CDlgUnicodeChange dlgUnicode;
dlgUnicode.DoModal();
}
void CMainFrame::OnSmsreset()
{
// TODO: Add your command handler code here
bSmsFlag = true;
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->Smsreset();
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->Smsreset();
bSmsFlag = false;
}
//工装 2005-8
void CMainFrame::OnGongzhuang()
{
// TODO: Add your command handler code here
bShowData = false;
ShowList(false);
StopSend();
OnGuiyueDf0241();
if(!bGzWndShow)
{
dlgGongzhuang = new CDlgGongzhuang();
if (dlgGongzhuang)
{
dlgGongzhuang->LoadFrame(IDR_GZ);
//dlgGongzhuang->ModifyStyle(WS_SIZEBOX,WS_MAXIMIZEBOX);
dlgGongzhuang->ShowWindow(SW_SHOWMAXIMIZED);
bGzWndShow = true;
dlgGongzhuang->SetAddress(nGroupNo,nAddrNo);
}
}
else
dlgGongzhuang->ShowWindow(SW_SHOWMAXIMIZED);
}
void CMainFrame::OnDestroy()
{
CFrameWnd::OnDestroy();
// TODO: Add your message handler code here
if (dlgGongzhuang)
{
//delete dlgGongzhuang;
dlgGongzhuang = NULL;
}
if (dlgAlarmerView)
{
//delete dlgGongzhuang;
dlgAlarmerView = NULL;
}
}
void CMainFrame::TransBuf(BYTE* buf,int len)
{
if(dlgGongzhuang)
dlgGongzhuang->TransBuf(buf,len);
else if(dlgAlarmerView)
dlgAlarmerView->TransBuf(buf,len);
}
void CMainFrame::OnGuiyueJdxj()
{
// TODO: Add your command handler code here
SetSpecialChar(0xEB);
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->OnGuiyueJdxj();
}
void CMainFrame::OnUpdateGuiyueJdxj(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if(ngyType == GY_JDXJ)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);
}
void CMainFrame::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)
{
CFrameWnd::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);
// 不清楚这里的处理的作用
if(!bSysMenu && CMenuExt::IsMenu(pPopupMenu))
CMenuExt::UpdateMenu(pPopupMenu);
}
void CMainFrame::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct)
{
if(lpMeasureItemStruct->CtlType == ODT_MENU)
{
if( IsMenu((HMENU)lpMeasureItemStruct->itemID) &&
CMenuExt::IsMenu((HMENU)lpMeasureItemStruct->itemID))
{
// 使主框架窗口可以正确的计算出菜单项的尺寸
m_MenuExt.MeasureItem(lpMeasureItemStruct);
return;
}
}
CFrameWnd::OnMeasureItem(nIDCtl, lpMeasureItemStruct);
}
LRESULT CMainFrame::OnMenuChar(UINT nChar, UINT nFlags, CMenu* pMenu)
{
if(CMenuExt::IsMenu(pMenu))
// 允许使用键盘操作相应的菜单项命令
return CMenuExt::FindKeyboardShortcut(nChar, nFlags, pMenu);
else
return CFrameWnd::OnMenuChar(nChar, nFlags, pMenu);
}
void CMainFrame::OnComset()
{
// TODO: Add your command handler code here
}
void CMainFrame::OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult)
{
NMTOOLBAR* pNMToolBar = (NMTOOLBAR*)pNotifyStruct;
CRect rect;
m_wndToolBar.GetToolBarCtrl().GetRect(pNMToolBar->iItem, &rect);
rect.top = rect.bottom;
::ClientToScreen(pNMToolBar->hdr.hwndFrom, &rect.TopLeft());
if(pNMToolBar->iItem == ID_COMSET) //工具下拉菜单
{
CMenu* pPopup;
// 弹出的菜单存在了资源里
pPopup = GetMenu()->GetSubMenu(2);
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, rect.left, rect.top + 1, AfxGetMainWnd());
}
*pResult = TBDDRET_DEFAULT;
}
void CMainFrame::CallAlarmer()
{
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->UploadAlarmPara();
}
void CMainFrame::PutParaToStruct(BYTE *buf, int len)
{
int i;
if(buf[0] != 0x55) return;
memcpy(&m_GroupStation,buf,len);
for(i=0;i<32;i++)
{
m_GroupStation.Alarm_Area[i] = Long_byte_trans(m_GroupStation.Alarm_Area[i]);
m_GroupStation.Node_Out[i] = Long_byte_trans(m_GroupStation.Node_Out[i]);
}
WORD wtemp=m_GroupStation.Alarm_Ring_Delay;
m_GroupStation.Alarm_Ring_Delay = (LOBYTE(wtemp)<<8)+HIBYTE(wtemp);
m_GroupStation.Alarm32s_Enable = Long_byte_trans(m_GroupStation.Alarm32s_Enable);
dlgGroupStation.SetComboCheck(&m_GroupStation);
dlgGroupStation.InformationDesplay(ALARMER_UPLOAD_SUCCESS);
}
void CMainFrame::InformationDesplay(BYTE inf)
{
dlgGroupStation.InformationDesplay(inf);
}
void CMainFrame::OnQueryalarm()
{
// bShowData = false;
// ShowList(false);
// StopSend();
// OnGuiyueDf0241();
if(!bAlarm_InfWndShow)
{
dlgAlarmerView = new CDlgAlarmerView();
if (dlgAlarmerView)
{
dlgAlarmerView->LoadFrame(IDR_AlarmerV);
//dlgGongzhuang->ModifyStyle(WS_SIZEBOX,WS_MAXIMIZEBOX);
dlgAlarmerView->ShowWindow(SW_SHOWMAXIMIZED);
bAlarm_InfWndShow = true;
// dlgGongzhuang->SetAddress(nGroupNo,nAddrNo);
}
}
else
dlgAlarmerView->ShowWindow(SW_SHOWMAXIMIZED);
}
void CMainFrame::OnAlarmersetup()
{
dlgGroupStation.DoModal();
}
void CMainFrame::DownloadAlarmer(GROUPSTATION m_GroupStation)
{
((CMaintainView*)m_wndSplitter1.GetPane(0, 0))->SetAlarmControler(m_GroupStation);
}
//双字的高低字节位置转换
DWORD CMainFrame::Long_byte_trans(DWORD dwtrans)
{
DWORD dwtemp;
dwtemp=((dwtrans & 0xFF) << 24)+((dwtrans & 0xFF00) << 8)+((dwtrans & 0xFF0000) >> 8)+((dwtrans & 0xFF000000) >> 24);
return dwtemp;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -