📄 dlg_wave.cpp
字号:
// (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 + -