📄 mainfrm.cpp
字号:
CMDIFrameWnd::OnClose();
}
/////////////////////////////
int CMainFrame::AddChildFrame (CChildFrame *Child)
{
int wChildNo = -1;
if(ChildFrameNum >= MAXVIEWNUM || m_no <0) return -1;
for (int i = 0; i < MAXVIEWNUM; i++)
// for(int i=MAXVIEWNUM; i>=0; i--)
{
if (ChildFrameList[i]==0)
{
ChildFrameList[i] = Child;
m_ChanNo[i] = m_no;
if(strcmp(G_Channel.chan_data [m_no].chanName,"")==0)
m_strTitle.Format("第%02d号通道",m_no);
else
m_strTitle.Format("%s (通道%d)",G_Channel.chan_data[m_no].chanName,m_no);
Child->SetWindowText(m_strTitle);
ChildFrameList[i]->ActivateFrame();
ShowFlag[i] =1;
wChildNo = i;
ChildFrameNum ++;
break;
}
}
OnCommand(ID_WINDOW_TILE_VERT, 0);
//CMDIFrameWnd::OnCommand(ID_WINDOW_TILE_VERT,0);
return wChildNo;
}
void CMainFrame::ClearChildFrame (CChildFrame *Child)
{
for (int i=0; i<MAXVIEWNUM; i++)
{
if (ChildFrameList[i] == Child)
{
m_ChanNo[i] = -1;
ChildFrameList[i] = 0;
ChildFrameNum --;
flag = 1;
break;
}
}
}
void CMainFrame::ShowDataToView(int chanNo, uchar chanType, uchar chanRorT, char *buf,int len)
{
if(chanNo >= MAXCHANNUM || buf == NULL) return;
int no =-1;
for(int i =0;i<MAXVIEWNUM;i++){
if(chanNo == m_ChanNo[i])
{
no = i ; break;
}
}
if(no == -1) return;
if(saveFlag[no] ==1)
{
// FERTIME ft;
FILE * fp;
char filename[120], g_ParaFilePath[MAX_PATH];
if(!GetCurrentDirectory(MAX_PATH,g_ParaFilePath))
strcpy(g_ParaFilePath,PATH);
// getTime(&ft);
sprintf(filename, "%s/%s", g_ParaFilePath, G_Channel.chan_data[chanNo].chanName );
if(chanType == RECCHAN)
strcat(filename,"接收通道");
else
strcat(filename,"转发通道");
if(!chanRorT)
strcat(filename,"rev.txt");
else
strcat(filename,"send.txt");
struct _stat rdbfstat;
int len1;
int ret=_stat(filename,&rdbfstat);
if(ret!=0)
len1=-1;
else len1=rdbfstat.st_size;
if(len1 < 2000 * 1024 )
fp = fopen(filename,"a+");
else
fp = fopen(filename,"w");
if(fp)
{
// fprintf(fp,"%d月%d日%d时%d分%d秒%d毫秒\n",ft.aMon,ft.aDay,ft.aHour,ft.aMin,ft.aSec,ft.aMs);
for(int k=0; k<len; k++)
{
fprintf(fp," %02x",(*(buf+k)& 0xff));
}
fprintf(fp,"\n");
fclose(fp);
}
}
if(ShowFlag[no]==0) return;
CString m_data,str,str1;
CMy3104CView *pView = (CMy3104CView *)ChildFrameList[no]->GetActiveView();
if(pView == NULL) return ;
CRichEditCtrl &p = (CRichEditCtrl &)pView->GetRichEditCtrl();
int lines=p.GetLineCount();
pView->GetWindowText(m_data);
if(lines > 200) {
m_data = "";
pView->SetWindowText(m_data);
}
if(chanType == RECCHAN) //rx
{
str = "接收通道:\r\n";
}
else
{
str = "转发通道:\r\n";
}
m_data += str;
if(chanRorT == 0)
str ="TX: ";
else str ="RX: ";
m_data +=str;
for(i=0; i<len; i++)
{
str.Format("%02x ",(*(buf+i)& 0xff));
m_data += str;
}
m_data +="\r\n";
pView->SetWindowText(m_data);
lines = m_data.GetLength();
p.SetSel(lines,lines);
}
void CMainFrame::OnShowdataAll()
{
int flag = 0;
for(int i=0;i<G_Channel.chan_num;i++)
//for(int i=G_Channel.chan_num-1; i>=0; i--)
{
flag =0;
if(i>=MAXVIEWNUM)
{
return;
//i=MAXVIEWNUM-1;
}
for(int j=0; j<MAXVIEWNUM;j++)
//for(int j=MAXVIEWNUM-1; j>=0; j--)
{
if(m_ChanNo[j] == i)
{
flag =1;
break;
}
}
if(flag) {
if(ShowFlag[j] ==0) ShowFlag[j] =1;
continue;
}
m_no = i;
theApp.addnew();
}
}
void CMainFrame::OnShowdata(UINT ID)
{
m_no = ID - STARMENUID;
for(int j=0; j<MAXVIEWNUM;j++)
{
if(m_ChanNo[j] == m_no)
{
ChildFrameList[j]->ActivateFrame();
if(ShowFlag[j] ==0) ShowFlag[j] =1;
return;
}
}
theApp.addnew();
return;
}
BOOL CMainFrame::OnCommand(WPARAM wParam, LPARAM lParam)
{
//if(wParam>=STARMENUID && wParam<=STARMENUID+MAXCHANNUM)
return CMDIFrameWnd::OnCommand(wParam, lParam);
}
void CMainFrame::OnShowStop()
{
CChildFrame *Child = (CChildFrame *)this->GetActiveFrame();
if(Child == NULL) return;
for(int j=0; j<MAXVIEWNUM;j++)
{
if(ChildFrameList[j] == Child)
{
if(ShowFlag[j] ==1) ShowFlag[j] =0;
break;
}
}
}
void CMainFrame::OnShowdataStart()
{
CChildFrame *Child = (CChildFrame *)this->GetActiveFrame();
if(Child == NULL) return;
for(int j=0; j<MAXVIEWNUM;j++)
{
if(ChildFrameList[j] == Child)
{
if(ShowFlag[j] ==0) ShowFlag[j] =1;
break;
}
}
}
void CMainFrame::OnShowClear()
{
CChildFrame *Child = (CChildFrame *)this->GetActiveFrame();
for(int j=0; j<MAXVIEWNUM;j++)
{
if(ChildFrameList[j] == Child)
{
CMy3104CView *pView = (CMy3104CView *)ChildFrameList[j]->GetActiveView();
pView->SetWindowText("");
break;
}
}
}
void CMainFrame::OnUpdateShowdataStart(CCmdUI* pCmdUI)
{
CChildFrame *Child = (CChildFrame *)this->GetActiveFrame();
if(Child == NULL)
{
pCmdUI->Enable(FALSE);
return;
}
pCmdUI->Enable(FALSE);
for(int j=0; j<MAXVIEWNUM;j++)
{
if(ChildFrameList[j] == Child)
{
if(ShowFlag[j] ==0) pCmdUI->Enable(TRUE);
break;
}
}
}
void CMainFrame::OnUpdateShowStop(CCmdUI* pCmdUI)
{
CChildFrame *Child = (CChildFrame *)this->GetActiveFrame();
if(Child == NULL)
{
pCmdUI->Enable(FALSE);
return;
}
pCmdUI->Enable(FALSE);
for(int j=0; j<MAXVIEWNUM;j++)
{
if(ChildFrameList[j] == Child)
{
if(ShowFlag[j] ==1) pCmdUI->Enable(TRUE);
break;
}
}
}
void CMainFrame::OnUpdateSaveData(CCmdUI* pCmdUI)
{
CChildFrame *Child = (CChildFrame *)this->GetActiveFrame();
if(Child == NULL)
{
pCmdUI->Enable(FALSE);
return;
}
pCmdUI->Enable(FALSE);
pCmdUI->SetCheck(FALSE);
for(int j=0; j<MAXVIEWNUM;j++)
{
if(ChildFrameList[j] == Child)
{
pCmdUI->Enable(TRUE);
if(saveFlag[j] ==1) pCmdUI->SetCheck(TRUE);
break;
}
}
}
void CMainFrame::OnSaveData()
{
CChildFrame *Child = (CChildFrame *)this->GetActiveFrame();
if(Child == NULL) return;
for(int j=0; j<MAXVIEWNUM;j++)
{
if(ChildFrameList[j] == Child)
{
saveFlag[j]=1-saveFlag[j];
break;
}
}
}
BOOL CMainFrame::OnEraseBkgnd(CDC* pDC)
{
//pDC->TextOut(100,100,"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
return CMDIFrameWnd::OnEraseBkgnd(pDC);
}
void CMainFrame::OnUpdateClear(CCmdUI* pCmdUI)
{
CChildFrame *Child = (CChildFrame *)this->GetActiveFrame();
if(Child == NULL)
{
pCmdUI->Enable(FALSE);
return;
}
pCmdUI->Enable(FALSE);
for(int j=0; j<MAXVIEWNUM;j++)
{
if(ChildFrameList[j] == Child)
{
if(ShowFlag[j] ==1) pCmdUI->Enable(TRUE);
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -