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 + -
显示快捷键?