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

📄 dlg_wave.cpp

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

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

/************************************************
	Global曄悢  Sel_Data.File   -> Read偡傞攇宍僨乕僞僼傽僀儖柤
				Sel_Data.Pnt    -> 娤應揰柤
				Sel_Data.R_dt   -> 敪惗帪崗
				Sel_Data.MaxAcc -> 嵟戝崌惉壛懍搙
				Sel_Data.SinLev -> 寁應恔搙
				傪僙僢僩偟偰偔偩偝偄

				慖戰偝傟偰偄側偄応崌偼丄
				Sel_Data.File[0] = NULL
				Sel_Data.Pnt[0] = NULL 偲偟偰偔偩偝偄

				SetForeColor(0x00BBGGRR);
				BB -> Blue (0x00乣0xff)
				GG -> Green(0x00乣0xff)
				RR -> Red  (0x00乣0xff)
************************************************/

#include "stdafx.h"
#include "KSG.h"
#include "Dlg_Wave.h"

#include "msflexgrid.h"

#include "MSdefine.h"
#include "C_Work.h"
#include "KSG_Main.h"
#include "KSG_File.h"
#include "C_Proc.h"

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

//-----( 掕悢愰尵 )-----
#define	GRID_COL_MAX	13						// 僌儕僢僪嵟戝悢

//-----( 曄悢愰尵 )-----
int		Init_complete = 0;						// 昞帵姰椆僼儔僌
int		Disp_Area = 0;							// 斖埻愗傝懼偊
												//  0:300屄昞帵
												//  1:慡昞帵
float	XYZ_max_acc[3];							// XYZ偺嵟戝崌惉壛懍搙
char	*Wave_Title[2] = {						// 僞僀僩儖
		// ver 1.30
		//"攇宍僨乕僞堦棗昞帵",
		//"攇宍僨乕僞堦棗昞帵     [僌儕僢僪昤夋拞丒丒丒偟偽傜偔偍懸偪偔偩偝偄]"
		"攇宍Data堦棗昞帵",
		"攇宍Data堦棗昞帵     [Grid昤夋拞丒丒丒懸婡惪]",
};
int		Wave_max = 300;							// 嵟戝昞帵屄悢
struct		S_RCV_WAV	DmySelWav;

/////////////////////////////////////////////////////////////////////////////
// CDlg_Wave 僟僀傾儘僌


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


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


BEGIN_MESSAGE_MAP(CDlg_Wave, CDialog)
	//{{AFX_MSG_MAP(CDlg_Wave)
	ON_WM_CLOSE()
	ON_WM_SIZE()
	ON_BN_CLICKED(IDC_BTN_DISP1, OnBtnDisp1)
	ON_BN_CLICKED(IDC_BTN_DISP2, OnBtnDisp2)
	ON_BN_CLICKED(IDC_BTN_READ, OnBtnRead)
	ON_BN_CLICKED(IDC_BTN_WRITE, OnBtnWrite)
	ON_BN_CLICKED(IDC_BTN_AREA, OnBtnArea)
	ON_BN_CLICKED(IDC_BTN_MENU, OnBtnMenu)
	ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

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


/*=====================================
@p	<< Dialog弶婜壔 >>
=====================================*/
int	SelCh;
char	SelFileN[MAX_PATH];

BOOL CDlg_Wave::OnInitDialog() 
{
	CProgressCtrl*	pCtrl;

	CDialog::OnInitDialog();
	pOpenDlg = this;							// Dialog Pointer奿擺

	CComboBox*	pCmbBx;

	pCmbBx = (CComboBox*)GetDlgItem(IDC_COMBO1);
	SelCh = 0;
	pCmbBx->SetCurSel(SelCh);

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

	Init_complete = 0;
	Disp_Area = 0;
	Wave_max = 300;
	#if !HY_KAI				// 18-Feb-2004 夵憿
		ShowWindow(SW_SHOWMAXIMIZED);				// 嵟戝壔昞帵
	#endif
	pCtrl = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS);
	pCtrl->SetRange(0, MAX_WAVE_CNT);
	pCtrl->SetPos(0);
	CDlg_Wave::GridInit();						// 僌儕僢僪弶婜壔
	Init_complete = 1;

	
	if (Sel_Data.File[0] != NULL) {
		strcpy(SelFileN, Sel_Data.File);
		CDlg_Wave::WaveBinDataRead(Sel_Data.File);		// 僨乕僞僼傽僀儖撉傒崬傒
	}
	CDlg_Wave::DataDisp(1);						// 僨乕僞昞帵
	pCtrl->ShowWindow(SW_HIDE);
	SetDlgItemText(IDC_STC_MAX2, "-----");
	SetDlgItemText(IDC_STC_MAG2, "-----");


	OnSelchangeCombo1();

	return TRUE;  // 僐儞僩儘乕儖偵僼僅乕僇僗傪愝掕偟側偄偲偒丄栠傝抣偼 TRUE 偲側傝傑偡
	              // 椺奜: OCX 僾儘僷僥傿 儁乕僕偺栠傝抣偼 FALSE 偲側傝傑偡
}

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

/*=====================================
@p	<< Window儕僒僀僘 >>
=====================================*/
void CDlg_Wave::OnSize(UINT nType, int cx, int cy) 
{
	CWnd*	pWnd;
	CRect	oldRect, nowRect, pRect, bRect, gRect, gmRect;
	CRect	tRect[4];
	CRect	mRect[2];
	int		i, j, w, h, woff = -10, hoff = -10;
	int		nID[8] = { 
				IDC_BTN_DISP1,
				IDC_BTN_DISP2,
				-1,
				IDC_BTN_READ,
				IDC_BTN_WRITE,
				-1,
				IDC_BTN_AREA,
				IDC_BTN_MENU,
			};
	int		tID[2][5] = {
				{ IDC_PIC_TITLE1 , IDC_STC_TITLE1, IDC_STC_TITLE3, IDC_STC_TITLE01, IDC_STC_TITLE03 },
				{ IDC_PIC_TITLE2 , IDC_STC_TITLE2, IDC_STC_TITLE4, IDC_STC_TITLE02, IDC_STC_TITLE04 }
			};
	int		fId[2][2][2] = {
				{{ IDC_STC_MAX_FRAME1 , IDC_STC_MAX1 } , { IDC_STC_MAG_FRAME1 , IDC_STC_MAG1 }},
				{{ IDC_STC_MAX_FRAME2 , IDC_STC_MAX2 } , { IDC_STC_MAG_FRAME2 , IDC_STC_MAG2 }}
			};

	CDialog::OnSize(nType, cx, cy);

	if (nType == SIZE_MINIMIZED) return;		// 傾僀僐儞昞帵?
	if (Init_complete == 1) return;

	//-----( 弶婜抣愝掕 )-----
	pWnd = GetDlgItem(nID[0]);
	if (pWnd == NULL) return;
	pWnd->GetWindowRect(oldRect);
	h = oldRect.bottom - oldRect.top;
	w = oldRect.right  - oldRect.left;
	oldRect.top    = cy - h + hoff;
	oldRect.bottom = oldRect.top + h;
	oldRect.right  = -woff;
	//-----( 奺儃僞儞埵抲曄峏 )-----
	for (i=0; i<8; i++) {
		if (nID[i] == -1) {
			oldRect.right += (w/2);
		}
		else {
			pWnd = GetDlgItem(nID[i]);
			if (pWnd == NULL) return;
			pWnd->GetWindowRect(nowRect);
			nowRect.top    = oldRect.top;
			nowRect.bottom = oldRect.bottom;
			nowRect.left   = oldRect.right + 1;
			nowRect.right  = nowRect.left + w;
			pWnd->MoveWindow(nowRect, TRUE);
			oldRect = nowRect;
		}
	}
	
	//-----( 僾儘僌儗僗僶乕埵抲曄峏 )-----
	pWnd = GetDlgItem(IDC_PROGRESS);
	if (pWnd == NULL) return;
	pWnd->GetWindowRect(bRect);
	bRect.top    = nowRect.top;
	bRect.left   = nowRect.right + 5;
	bRect.bottom = nowRect.bottom;
	bRect.right  = cx + woff;
	pWnd->MoveWindow(bRect, TRUE);

	//-----( 僞僀僩儖埵抲曄峏 )-----
	for (i=0; i<2; i++) {
		pWnd = GetDlgItem(tID[i][0]);
		if (pWnd == NULL) return;
		pWnd->GetWindowRect(pRect);
		w = pRect.right  - pRect.left;
		h = pRect.bottom - pRect.top;
		pRect.left   = (cx - w) / 2;
		pRect.right  = pRect.left + w;
		pRect.top    = 5 + (h * i + (5 * i));
		pRect.bottom = pRect.top + h;
		pWnd->MoveWindow(pRect, TRUE);

		pWnd = GetDlgItem(tID[i][1]);
		if (pWnd == NULL) return;
		pWnd->GetWindowRect(tRect[0]);
		w = tRect[0].right  - tRect[0].left;
		h = tRect[0].bottom - tRect[0].top;
		tRect[0].left   = pRect[0].left + 5;
		tRect[0].right  = tRect[0].left + w;
		tRect[0].top    = pRect[0].top + 5;
		tRect[0].bottom = tRect[0].top + h - 1;
		pWnd->MoveWindow(tRect[0], TRUE);

		pWnd = GetDlgItem(tID[i][2]);
		if (pWnd == NULL) return;
		pWnd->GetWindowRect(tRect[1]);
		w = tRect[1].right  - tRect[1].left;
		h = tRect[1].bottom - tRect[1].top;
		tRect[1].left   =  cx / 2;
		tRect[1].right  = tRect[1].left + w;
		tRect[1].top    = pRect.top + 6;
		tRect[1].bottom = tRect[0].bottom;
		pWnd->MoveWindow(tRect[1], TRUE);

		pWnd = GetDlgItem(tID[i][3]);
		if (pWnd == NULL) return;
		pWnd->GetWindowRect(tRect[2]);
		tRect[2].left   = tRect[0].right + 5;
		tRect[2].right  = tRect[1].left - 5;
		tRect[2].top    = tRect[0].top;
		tRect[2].bottom = tRect[0].bottom;
		pWnd->MoveWindow(tRect[2], TRUE);

		pWnd = GetDlgItem(tID[i][4]);
		if (pWnd == NULL) return;
		pWnd->GetWindowRect(tRect[3]);
		tRect[3].left   = tRect[1].right + 5;
		tRect[3].right  = pRect.right - 5;
		tRect[3].top    = tRect[1].top;
		tRect[3].bottom = tRect[0].bottom;
		pWnd->MoveWindow(tRect[3], TRUE);
	}

	//-----( 僌儕僢僪埵抲曄峏 )-----
	pWnd = GetDlgItem(IDC_MSFLEXGRID);
	if (pWnd == NULL) return;
	pWnd->GetWindowRect(gRect);
	gRect.top    = tRect[3].bottom + 10;
	gRect.left   = gRect.left;
	gRect.bottom = nowRect.top - ((nowRect.bottom-nowRect.top)*3) - 10;
	gRect.right  = cx - 5;
	pWnd->MoveWindow(gRect, TRUE);

	//-----( 僌儕僢僪(MAX)埵抲曄峏 )-----
	pWnd = GetDlgItem(IDC_MSFLEXGRID_MAX);
	if (pWnd == NULL) return;
	pWnd->GetWindowRect(gmRect);
	h = gmRect.bottom - gmRect.top;
	gmRect.top    = gRect.bottom;
	gmRect.left   = gRect.left;
	gmRect.bottom = gmRect.top + h;
	gmRect.right  = gRect.right;
	pWnd->MoveWindow(gmRect, TRUE);

	for (i=0; i<2; i++) {
		for (j=0; j<2; j++) {
			pWnd = GetDlgItem(fId[i][j][0]);
			if (pWnd == NULL) return;
			pWnd->GetWindowRect(mRect[0]);
			h = mRect[0].bottom - mRect[0].top;
			mRect[0].top    = gmRect.bottom + (h * j) + 5;
			mRect[0].bottom = mRect[0].top + h;
			pWnd->MoveWindow(mRect[0], TRUE);

			//-----( 嵟戝崌惉壛懍搙侾埵抲曄峏 )-----
			pWnd = GetDlgItem(fId[i][j][1]);
			if (pWnd == NULL) return;
			pWnd->GetWindowRect(mRect[1]);
			h = mRect[0].bottom - mRect[0].top;
			mRect[1].top    = mRect[0].top    + 2;
			mRect[1].bottom = mRect[0].bottom - 2;
			pWnd->MoveWindow(mRect[1], TRUE);
		}
	}
}

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

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

/*=====================================
@p	<< 惉暘侾亅僌儔僼昞帵儃僞儞 >>
=====================================*/
void CDlg_Wave::OnBtnDisp1() 
{
	DspReqStack(DSP_DIAG);

⌨️ 快捷键说明

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