moudledlg.cpp
来自「故障诊断工作涉及的领域相当广泛」· C++ 代码 · 共 271 行
CPP
271 行
// moudledlg.cpp : implementation file
//
#include "stdafx.h"
#include "richtest.h"
#include "moudledlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// moudledlg dialog
moudledlg::moudledlg(command** ppcmd,unsigned int* pcnt,node* pnode,CWnd* pParent /*=NULL*/)
: CDialog(moudledlg::IDD, pParent)
{
//{{AFX_DATA_INIT(moudledlg)
// NOTE: the ClassWizard will add member initialization here
this->pnode=pnode;
this->ppcmd=ppcmd;
this->pcnt=pcnt;
cmdcnt=0;
p=NULL;
for(unsigned int i=0;i<PROCESS_CNT;i++)
cmdcnt+=pcnt[i];
if(cmdcnt>0)
p=new DWORD[cmdcnt];
//}}AFX_DATA_INIT
}
void moudledlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(moudledlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
int moudledlg::DoModal()
{
int i=CDialog::DoModal();
if(p!=NULL)
delete[] p;
return i;
}//
BEGIN_MESSAGE_MAP(moudledlg, CDialog)
//{{AFX_MSG_MAP(moudledlg)
ON_CBN_SELCHANGE(IDC_COMBO_CONECTOR, OnSelchangeCombo2)
ON_CBN_SELCHANGE(IDC_COMBO_MODULE, OnSelchangeCombo1)
ON_BN_CLICKED(IDC_BUTTON_INPUT, OnButtoninput)
ON_BN_CLICKED(IDC_BUTTON_OUTPUT, OnButtonoutput)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// moudledlg message handlers
BOOL moudledlg::OnInitDialog()
{
CDialog::OnInitDialog();
unsigned int cnt=0;
const char* info;
// TODO: Add extra initialization here
CComboBox* cmbfunctype=(CComboBox*)GetDlgItem(IDC_COMBO_MODULE);
for(unsigned int i=0;i<PROCESS_CNT;i++)
for(unsigned int j=0;j<*(pcnt+i);j++)
{
info=(const char*)((ppcmd[i]+j)->cmd_name);
p[cnt]=(DWORD)ppcmd[i]+j;
if(info!=NULL)
cmbfunctype->InsertString(cnt++,info);
}
cmbfunctype->SetCurSel(0);
CButton* pb=(CButton*)GetDlgItem(IDOK);
pb->EnableWindow(0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void moudledlg::OnSelchangeCombo2()
{
// TODO: Add your control notification handler code here
CComboBox* pcbxcn=(CComboBox*)this->GetDlgItem(IDC_COMBO_CONECTOR);
int select=pcbxcn->GetCurSel();
pnode->funcnumber=select;
pnode->incnt=(*ppcmd)->conector[select].in_param_cnt;
pnode->infreecnt=pnode->incnt;
pnode->pre=new nd[pnode->incnt];
pnode->prepin=new int32[pnode->incnt];
pnode->binfrosen=new BOOL[pnode->incnt];
pnode->binvalid=new BOOL[pnode->incnt];
pnode->pstructure=new datastructure[pnode->incnt];
for(unsigned int i=0;i<pnode->incnt;i++)
{
pnode->prepin[i]=-1;
pnode->binfrosen[i]=FALSE;
pnode->binvalid[i]=FALSE;
}
if(pnode->incenter!=NULL)
{
delete[] pnode->incenter;
delete[] pnode->inleft;
delete[] pnode->inright;
delete[] pnode->inrect;
}
pnode->incenter=new dpt[pnode->incnt];
pnode->inleft=new dpt[pnode->incnt];
pnode->inright=new dpt[pnode->incnt];
pnode->inrect=new drec[pnode->incnt];
pnode->outcnt=(*ppcmd)->conector[select].out_param_cnt;
pnode->boutfrosen=new BOOL[pnode->outcnt];
for(i=0;i<pnode->outcnt;i++)
{
pnode->boutfrosen[i]=FALSE;
}
pnode->next=new ndlist[pnode->outcnt];
pnode->pptlist=new ptlist[pnode->incnt+5];
if(pnode->outcenter!=NULL)
{
delete[] pnode->outcenter;
delete[] pnode->outleft;
delete[] pnode->outright;
delete[] pnode->outrect;
}
pnode->outcenter=new dpt[pnode->outcnt];
pnode->outleft=new dpt[pnode->outcnt];
pnode->outright=new dpt[pnode->outcnt];
pnode->outrect=new drec[pnode->outcnt];
}
void moudledlg::OnSelchangeCombo1()
{
// TODO: Add your control notification handler code here
const char* info=NULL;
unsigned cnt=0;
CComboBox* pcbxmd=(CComboBox*)this->GetDlgItem(IDC_COMBO_MODULE);
int nIndex=pcbxmd->GetCurSel();
command* pcmd=(command*)p[nIndex];
pnode->cmd_id=pcmd->cmd_id;
pnode->cmd_level=pcmd->level;
CComboBox* pcbxcn=(CComboBox*)this->GetDlgItem(IDC_COMBO_CONECTOR);
for(unsigned int i=0;i<pcmd->conector_cnt;i++)
{
info=(const char*)(pcmd->conector[i].function_name);
if(info!=NULL)
pcbxcn->InsertString(cnt++,info);
}
pcbxcn->SetCurSel(0);
int select=0;
pnode->incnt=(*ppcmd)->conector[select].in_param_cnt;
pnode->infreecnt=pnode->incnt;
pnode->funcnumber=select;
pnode->pre=new nd[pnode->incnt];
pnode->prepin=new int32[pnode->incnt];
pnode->binfrosen=new BOOL[pnode->incnt];
pnode->binvalid=new BOOL[pnode->incnt];
pnode->pstructure=new datastructure[pnode->incnt];
for(i=0;i<pnode->incnt;i++)
{
pnode->prepin[i]=-1;
pnode->binfrosen[i]=FALSE;
pnode->binvalid[i]=FALSE;
}
if(pnode->incenter!=NULL)
{
delete[] pnode->incenter;
delete[] pnode->inleft;
delete[] pnode->inright;
delete[] pnode->inrect;
}
pnode->incenter=new dpt[pnode->incnt];
pnode->inleft=new dpt[pnode->incnt];
pnode->inright=new dpt[pnode->incnt];
pnode->inrect=new drec[pnode->incnt];
pnode->outcnt=(*ppcmd)->conector[select].out_param_cnt;
pnode->boutfrosen=new BOOL[pnode->outcnt];
for(i=0;i<pnode->outcnt;i++)
{
pnode->boutfrosen[i]=FALSE;
}
pnode->next=new ndlist[pnode->outcnt];
pnode->pptlist=new ptlist[pnode->incnt+5];
if(pnode->outcenter!=NULL)
{
delete[] pnode->outcenter;
delete[] pnode->outleft;
delete[] pnode->outright;
delete[] pnode->outrect;
}
pnode->outcenter=new dpt[pnode->outcnt];
pnode->outleft=new dpt[pnode->outcnt];
pnode->outright=new dpt[pnode->outcnt];
pnode->outrect=new drec[pnode->outcnt];
CButton* pb=(CButton*)GetDlgItem(IDOK);
pb->EnableWindow(1);
pnode->pcmd=pcmd;
}
void moudledlg::OnButtoninput()
{
// TODO: Add your control notification handler code here
pnode->type=indata;
pnode->incnt=0;
pnode->outcnt=1;
pnode->concnt=0;
CButton* pb=(CButton*)GetDlgItem(IDOK);
pb->EnableWindow(1);
pnode->cmd_id=-1;
pnode->cmd_level=0;
pnode->boutfrosen=new BOOL[pnode->outcnt];
for(unsigned int i=0;i<pnode->outcnt;i++)
{
pnode->boutfrosen[i]=FALSE;
}
pnode->next=new ndlist[pnode->outcnt];
if(pnode->outcenter!=NULL)
{
delete[] pnode->outcenter;
delete[] pnode->outleft;
delete[] pnode->outright;
delete[] pnode->outrect;
}
pnode->outcenter=new dpt[pnode->outcnt];
pnode->outleft=new dpt[pnode->outcnt];
pnode->outright=new dpt[pnode->outcnt];
pnode->outrect=new drec[pnode->outcnt];
pnode->conect_data_file();
}
void moudledlg::OnButtonoutput()
{
// TODO: Add your control notification handler code here CDocument
pnode->type=outdata;
pnode->incnt=1;
pnode->outcnt=0;
pnode->concnt=0;
CButton* pb=(CButton*)GetDlgItem(IDOK);
pb->EnableWindow(1);
pnode->cmd_id=-1;
pnode->infreecnt=1;
pnode->cmd_level=0;
pnode->pre=new nd[pnode->incnt];
pnode->prepin=new int[pnode->incnt];
pnode->pptlist=new ptlist[pnode->incnt];
pnode->binfrosen=new BOOL[pnode->incnt];
pnode->binvalid=new BOOL[pnode->incnt];
pnode->pstructure=new datastructure[pnode->incnt];
for(unsigned int i=0;i<pnode->incnt;i++)
{
pnode->binfrosen[i]=FALSE;
}
if(pnode->incenter!=NULL)
{
delete[] pnode->incenter;
delete[] pnode->inleft;
delete[] pnode->inright;
delete[] pnode->inrect;
}
pnode->incenter=new dpt[pnode->incnt];
pnode->inleft=new dpt[pnode->incnt];
pnode->inright=new dpt[pnode->incnt];
pnode->inrect=new drec[pnode->incnt];
pnode->conect_data_file();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?