⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlg_del.cpp

📁 对日本KSG震动探测仪器编写的伴侣服务代码
💻 CPP
字号:
// (Version 1.00 :: 10-Mar-1999 :: Harutoshi Yoshida)

// Dlg_Del.cpp : 僀儞僾儕儊儞僥乕僔儑儞 僼傽僀儖
//

#include "stdafx.h"
#include "MSdefine.h"
#include "KSG.h"
#include "Dlg_Del.h"
#include "Dlg_Wait.h"
#include "KSG_File.h"

#include "msflexgrid.h"

#include "C_Proc.h"
#include "C_Work.h"
#include "KSG_Main.h"
#if !C_DEFINE_INC
	#include	"C_Define.h"
#endif

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#define	GRID_COL_MAX	3						// 僌儕僢僪嵟戝悢

char	*Del_Grid_title[GRID_COL_MAX] = {		// 僌儕僢僪偺僞僀僩儖
	// ver 1.30
	///*00*/	"No.",
	///*01*/	"僼傽僀儖柤",
	///*02*/	"攇宍僨乕僞廂廤忬嫷"
	/*00*/	"No.",
	/*01*/	"File柤",
	/*02*/	"攇宍Data廂廤忬嫷"
};
short	Del_Grid_width[GRID_COL_MAX] = {		// 僌儕僢僪偺暆(暥帤悢仏俀亄俆侽)
	/*00*/	 600,
	/*01*/	1800,
	/*02*/	2200
};
struct	S_DEL_DAT {
	char	name[13];							// 僼傽僀儖柤
	int		stt;								// 攇宍僨乕僞廂廤忬嫷
};
struct	S_DEL_DAT	WaveFile[MAX_CH][15];		// 昞帵梡僨乕僞


/////////////////////////////////////////////////////////////////////////////
// CDlg_Del 僟僀傾儘僌


CDlg_Del::CDlg_Del(CWnd* pParent /*=NULL*/)
	: CDialog(CDlg_Del::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlg_Del)
		// 儊儌 - ClassWizard 偼偙偺埵抲偵儅僢僺儞僌梡偺儅僋儘傪捛壛傑偨偼嶍彍偟傑偡丅
	//}}AFX_DATA_INIT
}


void CDlg_Del::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlg_Del)
		// 儊儌 - ClassWizard 偼偙偺埵抲偵儅僢僺儞僌梡偺儅僋儘傪捛壛傑偨偼嶍彍偟傑偡丅
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlg_Del, CDialog)
	//{{AFX_MSG_MAP(CDlg_Del)
	ON_WM_CLOSE()
	ON_BN_CLICKED(IDC_BTN_MAG_REQ, OnBtnMagReq)
	ON_BN_CLICKED(IDC_BTN_WAVE_REQ, OnBtnWaveReq)
	ON_BN_CLICKED(IDC_BTN_DEL, OnBtnDel)
	ON_BN_CLICKED(IDC_BTN_EXIT, OnBtnExit)
	ON_CBN_SELCHANGE(IDC_CMB_PNT, OnSelchangeCmbPnt)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlg_Del 儊僢僙乕僕 僴儞僪儔

/*=====================================
@p	<< Dialog弶婜壔 >>
=====================================*/
BOOL CDlg_Del::OnInitDialog() 
{
	CMSFlexGrid*	pGrid;
	CComboBox*		pCmbBx;
	int				i;
	char			buf[10];

	CDialog::OnInitDialog();
	pOpenDlg = this;

	// 儊僯儏乕儃僞儞(倃)丗柍岠
	GetSystemMenu(FALSE)->EnableMenuItem(SC_CLOSE, MF_DISABLED);

	pGrid = (CMSFlexGrid*)GetDlgItem(IDC_MSFLEXGRID);
	pGrid->SetCols(GRID_COL_MAX);
	pGrid->SetRow(0);
	for (i=0; i<GRID_COL_MAX; i++) {
		pGrid->SetCol(i);
		pGrid->SetCellAlignment(flexAlignCenterCenter);
		pGrid->SetText(Del_Grid_title[i]);
		pGrid->SetColWidth(i, Del_Grid_width[i]);
	}
	pGrid->SetCol(0);
	for (i=1; i<15+1; i++) {
		pGrid->SetRow(i);
		sprintf(buf, "%d", i);
		pGrid->SetText(buf);
	}
	pGrid->SetRow(1);
	OnClickMsflexgrid();

	pCmbBx = (CComboBox*)GetDlgItem(IDC_CMB_PNT);
	for (i=0; i<MAX_CH; i++) {
		pCmbBx->AddString(AdrEntDat[i].AdrName);
	}
	pCmbBx->SetCurSel(M_Cmd_Sel_Ch);

	ChNoDisp();
	DataDisp();
	return TRUE;
}

/*=====================================
@p	<< Dialog Close >>
=====================================*/
void CDlg_Del::OnClose() 
{
	dialog_close(DSP_DEL);
	CDialog::OnOK();
}

/*=====================================
@p	<< 俷俲儃僞儞 >>
=====================================*/
void CDlg_Del::OnOK() 
{
	return;
}

/*=====================================
@p	<< 僉儍儞僙儖儃僞儞 >>
=====================================*/
void CDlg_Del::OnCancel() 
{
	return;
}

/*=====================================
@p	<< 儊僯儏乕儃僞儞 >>
=====================================*/
void CDlg_Del::OnBtnExit() 
{
	DspReqStack(DSP_MNT);
}

/*=====================================
@p	<< 娤應揰柤徧僐儞儃儃僢僋僗曄峏 >>
=====================================*/
void CDlg_Del::OnSelchangeCmbPnt() 
{
	CComboBox*	pCmbBx;
	int			n;

	pCmbBx = (CComboBox*)GetDlgItem(IDC_CMB_PNT);
	n = pCmbBx->GetCurSel();
	if (n != M_Cmd_Sel_Ch) {
		M_Cmd_Sel_Ch = n;
		CDlg_Del::ChNoDisp();
		CDlg_Del::DataDisp();
	}
}

/*=====================================
@p	<< 抧揰No.昞帵 >>
=====================================*/
void CDlg_Del::ChNoDisp()
{
	char		buf[5];

	sprintf(buf, "%d", M_Cmd_Sel_Ch+1);
	SetDlgItemText(IDC_STC_NUM, buf);
}

/*=====================================
@p	<< 僨乕僞昞帵 >>
=====================================*/
void CDlg_Del::DataDisp()
{
	CMSFlexGrid *pGrid;
	int i;
	char *chk[3] = {
		"",
		"仢",
		// ver 1.30
		//"嫮恔僨乕僞柍偟"
		"嫮恔Data柍"
	};

	pGrid = (CMSFlexGrid*)GetDlgItem(IDC_MSFLEXGRID);
	pGrid->ShowWindow(SW_HIDE);
	for (i=0; i<15; i++) {
		pGrid->SetRow(i+1);
		pGrid->SetCol(1);
		pGrid->SetText(WaveFile[M_Cmd_Sel_Ch][i].name);
		pGrid->SetCol(2);
		pGrid->SetText(chk[WaveFile[M_Cmd_Sel_Ch][i].stt]);
	}
	pGrid->SetRow(1);
	pGrid->ShowWindow(SW_SHOW);
	OnClickMsflexgrid();
}

/*=====================================
						m:23-Jan-1999
@p	<< 庢摼攇宍僼傽僀儖柤妋擣 >>
=====================================*/
void CDlg_Del::fname_chk()
{
	int f_all, fa, a, b, flg, f_cnt, d_cnt, err;
	char fname[MAX_PATH];
	struct S_DtbData dtb;

	// 巆嵼忣曬憤悢
	f_all = 15;
	for (fa=0;fa<f_all;fa++){		//
		WaveFile[M_Cmd_Sel_Ch][fa].stt = 2;
		RecvDir[M_Cmd_Sel_Ch].G_FName[fa][12] = NULL;	// 攇宍僼傽僀儖柤(1 - 15)
		if (RecvDir[M_Cmd_Sel_Ch].G_FName[fa][0] == ' '){
			break;
		}
		else{
			strcpy(WaveFile[M_Cmd_Sel_Ch][fa].name, RecvDir[M_Cmd_Sel_Ch].G_FName[fa]);
		}
	}
//	f_all = fa;
	for (;fa<15;fa++){		//
		WaveFile[M_Cmd_Sel_Ch][fa].stt = 0;
		WaveFile[M_Cmd_Sel_Ch][fa].name[0] = NULL;
	}
	get_dtb_entry();				// 摨堦抧恔僨乕僞僼傽僀儖嵞専嶕
	d_cnt = Dtb_ent_cnt;
	for (a=0;a<d_cnt;a++){		//
		err = get_dtb_name(a, fname);
		if (err){
			f_cnt = 0;
		}
		else{
			f_cnt = get_dtb_cnt(fname);
		}
		if (f_cnt > 1000) f_cnt = 0;
		for (b=0;b<f_cnt;b++){		//
			err = DtbDataAccess(0, fname, 0, b, (char*)&dtb);
			if (!err){			// 僄儔乕敪惗
				if (dtb.EntNum == M_Cmd_Sel_Ch){				// 搊榐No.
					for (fa=0;fa<f_all;fa++){			// 庢摼攇宍僼傽僀儖悢暘
						flg = strcmp(dtb.FileName, WaveFile[M_Cmd_Sel_Ch][fa].name);
						if (flg == 0){	// 堦抳
							if (dtb.FileEnable){		// 昞帵攇宍僼傽僀儖桳傝乛柍偟仢
								WaveFile[M_Cmd_Sel_Ch][fa].stt = 1;		// 攇宍僨乕僞廂廤忬嫷
							}
							else{
								WaveFile[M_Cmd_Sel_Ch][fa].stt = 0;			// 攇宍僨乕僞廂廤忬嫷
							}
							break;
						}
					}
				}
			}
		}
	}
}

/*=====================================
						m:23-Jan-1999
@p	<< 僐儅儞僪幚峴 >>
=====================================*/
void CDlg_Del::CmdExec(int cmd)
{
	CDlg_Wait wDlg;
	int s_ch;

	if (TCP_USE){
		s_ch = 1;
	}
	else{
		s_ch = M_Cmd_Sel_Ch;
	}

	// 昞帵崁栚庢摼
	CMSFlexGrid *pGrid;
	int fa, row;
	CString cbuf;

	pGrid = (CMSFlexGrid*)GetDlgItem(IDC_MSFLEXGRID);
	row = pGrid->GetRow();
	pGrid->SetCol(1);

	cbuf = pGrid->GetText();

	for (fa=0;fa<15;fa++){		//
		RecvDir[s_ch].G_FName[fa][0] = ' ';
	}
	switch (cmd){
	case FRETURN:					// 嫮恔僨乕僞梫媮
	case DELFILE:					// 僼傽僀儖嶍彍
		memmove(Scw[s_ch].AddPar, cbuf, 12);
		break;
	case DRETURN:					// 攇宍忣曬偺堦棗傪梫媮偡傞
		memmove(Scw[s_ch].AddPar, "            ", 12);
		break;
	}
	Scw[s_ch].AddPar[12] = (char) 0x0d;
	Scw[s_ch].AddPar[13] = (char) 0x0a;

	if (Rcw[s_ch].Enable && Rcw[s_ch].ComPhs == 0){
		// 29-Jan:HY
		M_Cmd_Exec |= Atv_dat[s_ch];
		Scw[s_ch].ReqCmd = cmd;
		wDlg.DoModal();
	}

	CmsBit.All_Send = 0;
	if (Exec_Abort == 0) {
		switch (cmd) {
		case FRETURN:				// 嫮恔僨乕僞梫媮
		case DRETURN:				// 攇宍忣曬偺堦棗傪梫媮偡傞
		case DELFILE:				// 僼傽僀儖嶍彍
			fname_chk();
			break;
		}
	}
	else{									// 拞抐
		war_disp(War_msg[4]);
	}
	DataDisp();
}

/*=====================================
@p	<< 嫮恔僨乕僞梫媮儃僞儞 >>
=====================================*/
void CDlg_Del::OnBtnMagReq()
{
	CmdExec(FRETURN);		// 嫮恔僨乕僞梫媮
}

/*=====================================
@p	<< 攇宍僨乕僞梫媮儃僞儞 >>
=====================================*/
void CDlg_Del::OnBtnWaveReq()
{
	CmdExec(DRETURN);		// 攇宍忣曬偺堦棗傪梫媮偡傞
}

/*=====================================
@p	<< 嶍彍儃僞儞 >>
=====================================*/
void CDlg_Del::OnBtnDel()
{
	CmdExec(DELFILE);		// 巜掕偟偨攇宍忣曬丄嫮恔忣曬偺嶍彍傪梫媮偡傞
}

BEGIN_EVENTSINK_MAP(CDlg_Del, CDialog)
    //{{AFX_EVENTSINK_MAP(CDlg_Del)
	ON_EVENT(CDlg_Del, IDC_MSFLEXGRID, -600 /* Click */, OnClickMsflexgrid, VTS_NONE)
	//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()

/*-------------------------------------
						m:23-Jan-1999
@p	<< Grid click >>
-------------------------------------*/
void CDlg_Del::OnClickMsflexgrid()
{
	long row;
	CMSFlexGrid* fxGrid;

	fxGrid = (CMSFlexGrid*)this->GetDlgItem(IDC_MSFLEXGRID);
	row = fxGrid->GetRow();
	fxGrid->SetCol(0);
	fxGrid->SetRow(row);
	fxGrid->SetColSel(GRID_COL_MAX-1);
	fxGrid->SetRowSel(row);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -