1899 lines
58 KiB
C++
1899 lines
58 KiB
C++
// opcreatesptdlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "geomative.h"
|
|
#include "opcreatesptdlg.h"
|
|
#include "Constant.h"
|
|
#include "DialCustomSptInput.h"
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
#define WM_UPDATEFIELDS WM_APP + 1
|
|
|
|
extern BOOL DoEvent(HWND hWnd);
|
|
extern HHOOK hHook;
|
|
extern LRESULT __stdcall CBTHookProc(long nCode, WPARAM wParam, LPARAM lParam);
|
|
extern bool IsExistSpecialChar(const CString &strFileName);
|
|
extern bool bIsInteger(CString strTxt);
|
|
extern bool bIsFloat(CString strTxt);
|
|
extern int g_iUILanguage;
|
|
extern int g_UIOffset;
|
|
extern CGeoMativeApp theApp;
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// COpCreateSptDlg dialog
|
|
|
|
|
|
//COpCreateSptDlg::COpCreateSptDlg(CWnd* pParent /*=NULL*/)
|
|
// : CDialog(COpCreateSptDlg::IDD, pParent)
|
|
//{
|
|
// //{{AFX_DATA_INIT(COpCreateSptDlg)
|
|
// m_cbAR = -1;
|
|
// m_cbCHamount = -1;
|
|
// m_dtpDEdate = 0;
|
|
// m_edDefiner = _T("");
|
|
// m_Eamount = -1;
|
|
// m_edSCdesc = _T("");
|
|
// m_edSname = _T("");
|
|
// m_lbChnumber = _T("");
|
|
// //}}AFX_DATA_INIT
|
|
//}
|
|
|
|
|
|
COpCreateSptDlg::COpCreateSptDlg(CScript2D* pNewScript, CLinkList<CMedium*>* pMedLinkList, INT_PTR* pRet, CWnd* pParent /*=NULL*/)
|
|
: CDialog(COpCreateSptDlg::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(COpCreateSptDlg)
|
|
m_edDeDate = CTime::GetCurrentTime();
|
|
m_iStartLayer = 0;
|
|
m_iEndLayer = 0;
|
|
m_strStartLayer = _T("");
|
|
m_strEndLayer = _T("");
|
|
//}}AFX_DATA_INIT
|
|
|
|
m_pRet = pRet;
|
|
m_pNewScript = pNewScript;
|
|
m_pOpCreateSptFrame = NULL;
|
|
|
|
m_pMedLinkList = pMedLinkList;
|
|
|
|
m_pOpCreateSptView = NULL;
|
|
// m_pOpCreateSptInfoView = NULL;
|
|
m_pOpCreateSptRecListView = NULL;
|
|
m_strStartLayer = _T("0");
|
|
m_strEndLayer = _T("0");
|
|
m_fDipoleSep = 1;
|
|
|
|
|
|
}
|
|
|
|
void COpCreateSptDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(COpCreateSptDlg)
|
|
DDX_Control(pDX, IDC_SPT_AR_RUN_METHOD, m_cmbArRunMethod);
|
|
DDX_Control(pDX, IDC_COMBO_MN_CTRL, m_cmbMNCtrl);
|
|
DDX_Control(pDX, IDC_TAB_OP_TP, m_tpTab);
|
|
DDX_DateTimeCtrl(pDX, IDC_SPT_DEDATE, m_edDeDate);
|
|
DDX_Text(pDX, IDC_EDIT_START_LAYER, m_strStartLayer);
|
|
DDX_Text(pDX, IDC_EDIT_END_LAYER, m_strEndLayer);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(COpCreateSptDlg, CDialog)
|
|
//{{AFX_MSG_MAP(COpCreateSptDlg)
|
|
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB_OP_TP, OnSelchangeTabOpTp)
|
|
ON_CBN_SELCHANGE(IDC_SPT_CHAMOUNT, OnSelchangeSptChamount)
|
|
ON_CBN_SELCHANGE(IDC_SPT_AR, OnSelchangeSptAr)
|
|
// ON_CBN_SELCHANGE(IDC_SPT_EAMOUNT, OnSelchangeSptEamount)
|
|
ON_BN_CLICKED(IDC_GEN, OnGen)
|
|
ON_WM_SIZE()
|
|
ON_BN_CLICKED(IDC_BUTTON_LAYER_FILTER, OnButtonLayerFilter)
|
|
ON_CBN_SELCHANGE(IDC_COMBO_MN_CTRL, OnSelchangeComboMnCtrl)
|
|
ON_MESSAGE(WM_UPDATEFIELDS, UpdateDisplay)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
//BEGIN_EASYSIZE_MAP(COpCreateSptDlg)
|
|
|
|
//BASIC_INFO
|
|
//SYSIZE(IDC_STATIC_BASIC_INFOR,ES_BORDER,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
|
|
//EASYSIZE(IDC_STATIC_SCRIPTNAME,ES_BORDER,ES_BORDER,ES_BORDER,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_STATIC_DATE,IDC_STATIC_SCRIPTNAME,IDC_STATIC_BASIC_INFOR,ES_KEEPSIZE,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_SPT_SNAME,ES_KEEPSIZE,IDC_STATIC_SCRIPTNAME,IDC_STATIC_BASIC_INFOR,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_SPT_DEDATE,IDC_SPT_SNAME,IDC_STATIC_DATE,ES_KEEPSIZE,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_STATIC_SPT_OPERATOR,ES_KEEPSIZE,IDC_SPT_SNAME,IDC_STATIC_BASIC_INFOR,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_STATIC_SPT_SEPRATE,IDC_STATIC_SPT_OPERATOR,IDC_SPT_DEDATE,ES_KEEPSIZE,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_SPT_DEFINER,ES_KEEPSIZE,IDC_STATIC_SPT_OPERATOR,IDC_STATIC_BASIC_INFOR,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_EDIT_SPT_SEPRATE,IDC_SPT_DEFINER,IDC_STATIC_SPT_SEPRATE,ES_KEEPSIZE,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_STATIC_SPT_REMARK,ES_KEEPSIZE,IDC_SPT_DEFINER,IDC_STATIC_BASIC_INFOR,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_SPT_SCDESC,ES_KEEPSIZE,IDC_STATIC_SPT_REMARK,IDC_STATIC_BASIC_INFOR,ES_KEEPSIZE,0)
|
|
|
|
//Channel_info
|
|
// EASYSIZE(IDC_STATIC_CHANNEL_INFO,IDC_STATIC_BASIC_INFOR,ES_BORDER,ES_KEEPSIZE,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_STATIC_SPT_ELECT_NUMBER,ES_KEEPSIZE,IDC_STATIC_CHANNEL_INFO,IDC_STATIC_CHANNEL_INFO,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_SPT_EAMOUNT,ES_KEEPSIZE,IDC_STATIC_SPT_ELECT_NUMBER,IDC_STATIC_CHANNEL_INFO,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_STATIC_SPT_CHANNEL_NUMBER,ES_KEEPSIZE,IDC_SPT_EAMOUNT,IDC_STATIC_CHANNEL_INFO,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_SPT_CHAMOUNT,ES_KEEPSIZE,IDC_STATIC_SPT_CHANNEL_NUMBER,IDC_STATIC_CHANNEL_INFO,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_STATIC_SPT_ARRAY,ES_KEEPSIZE,IDC_SPT_CHAMOUNT,IDC_STATIC_CHANNEL_INFO,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_SPT_AR,ES_KEEPSIZE,IDC_STATIC_SPT_ARRAY,IDC_STATIC_CHANNEL_INFO,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_STATIC_SPT_CHANL_INDEX,IDC_STATIC_SPT_ELECT_NUMBER,IDC_STATIC_CHANNEL_INFO,ES_KEEPSIZE,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_SPT_CHNUMBER,IDC_SPT_EAMOUNT,IDC_STATIC_SPT_CHANL_INDEX,ES_KEEPSIZE,ES_KEEPSIZE,0)
|
|
|
|
//Poing filter
|
|
// EASYSIZE(IDC_STATIC_POINTFILTER,IDC_STATIC_CHANNEL_INFO,ES_BORDER,ES_KEEPSIZE,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_TAB_OP_TP,ES_KEEPSIZE,IDC_STATIC_POINTFILTER,IDC_STATIC_POINTFILTER,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_STATIC_LAYER_FILTERINFO,ES_KEEPSIZE,IDC_TAB_OP_TP,IDC_STATIC_POINTFILTER,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_STATIC_LAYER_SHOW,ES_KEEPSIZE,IDC_STATIC_LAYER_FILTERINFO,IDC_STATIC_LAYER_FILTERINFO,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_EDIT_START_LAYER,IDC_STATIC_LAYER_SHOW,IDC_STATIC_LAYER_FILTERINFO,ES_KEEPSIZE,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_STATIC_LAYER_SEPRATE,IDC_EDIT_START_LAYER,IDC_STATIC_LAYER_FILTERINFO,ES_KEEPSIZE,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_EDIT_END_LAYER,IDC_STATIC_LAYER_SEPRATE,IDC_STATIC_LAYER_FILTERINFO,ES_KEEPSIZE,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDC_BUTTON_LAYER_FILTER,IDC_STATIC_LAYER_FILTERINFO,ES_KEEPSIZE,IDC_STATIC_LAYER_FILTERINFO,IDC_STATIC_LAYER_FILTERINFO,ES_HCENTER)
|
|
|
|
//Script frame
|
|
//SYSIZE(IDC_STATIC_FRAME,ES_BORDER,ES_KEEPSIZE,ES_KEEPSIZE,ES_BORDER,0)
|
|
|
|
//Button
|
|
// EASYSIZE(IDC_GEN,IDC_STATIC_POINTFILTER,ES_BORDER,ES_KEEPSIZE,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDOK,IDC_STATIC_POINTFILTER,IDC_GEN,ES_KEEPSIZE,ES_KEEPSIZE,0)
|
|
// EASYSIZE(IDCANCEL,IDC_STATIC_POINTFILTER,IDOK,ES_KEEPSIZE,ES_KEEPSIZE,0)
|
|
|
|
//END_EASYSIZE_MAP
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// COpCreateSptDlg message handlers
|
|
|
|
LRESULT COpCreateSptDlg::UpdateDisplay(WPARAM wParam, LPARAM lParam)
|
|
{
|
|
UpdateData((BOOL)wParam);
|
|
return 0;
|
|
}
|
|
|
|
BOOL COpCreateSptDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
// TODO: Add extra initialization here
|
|
m_bIsShowLayerFilter = false;
|
|
int iCAmount = (int)VAL_ZERO;
|
|
int iCHAmount = (int)VAL_ZERO;
|
|
m_fSptSeprate = 1;
|
|
m_pChannel = NULL;
|
|
m_vtListOrder.clear();
|
|
|
|
CString szLabel = _T("");
|
|
CTabCtrl* pTpTab = NULL;
|
|
CRect rect;
|
|
CRect recDlg;
|
|
|
|
// CComboBox* pCbEAmount = NULL;
|
|
CComboBox* pCbCHAmount = NULL;
|
|
CListBox* pLbChNumber = NULL;
|
|
|
|
((CEdit*)GetDlgItem(IDC_SPT_SNAME))->SetLimitText(20);
|
|
((CEdit*)GetDlgItem(IDC_SPT_DEFINER))->SetLimitText(20);
|
|
((CEdit*)GetDlgItem(IDC_SPT_SCDESC))->SetLimitText(50);
|
|
|
|
|
|
GetDlgItem(IDC_STATIC_SPT_SEPRATE)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_EDIT_SPT_SEPRATE)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_CHECK_STRONG_GRADIENT_SWITCH)->ShowWindow(SW_HIDE);
|
|
szLabel.Empty();
|
|
szLabel.LoadString(IDS_SPT_TP_SEL);
|
|
ASSERT(!szLabel.IsEmpty());
|
|
m_tpTab.InsertItem(TAB_INDEX_TP_SEL, szLabel);
|
|
|
|
szLabel.Empty();
|
|
szLabel.LoadString(IDS_SPT_TP_SORT);
|
|
ASSERT(!szLabel.IsEmpty());
|
|
m_tpTab.InsertItem(TAB_INDEX_TP_SORT, szLabel);
|
|
|
|
m_opSelSptTpDlg.Create(IDD_OP_SPT_TP_SEL, GetDlgItem(IDC_TAB_OP_TP));
|
|
m_opSortSptTpDlg.Create(IDD_OP_SPT_TP_SORT, GetDlgItem(IDC_TAB_OP_TP));
|
|
|
|
pTpTab = (CTabCtrl*)GetDlgItem(IDC_TAB_OP_TP);
|
|
|
|
if ((NULL != pTpTab) && (VAL_ZERO != m_opSelSptTpDlg.GetSafeHwnd()) && (VAL_ZERO != m_opSortSptTpDlg.GetSafeHwnd()))
|
|
{
|
|
CRect rect;
|
|
pTpTab->GetClientRect(&rect);
|
|
|
|
rect.top += 23;
|
|
rect.bottom -= 4;
|
|
rect.left += 4;
|
|
rect.right -= 4;
|
|
|
|
m_opSelSptTpDlg.MoveWindow(&rect);
|
|
m_opSortSptTpDlg.MoveWindow(&rect);
|
|
}
|
|
pTpTab = NULL;
|
|
|
|
m_opSelSptTpDlg.ShowWindow(true);
|
|
m_opSortSptTpDlg.ShowWindow(false);
|
|
this->ShowWindow(SW_MAXIMIZE);
|
|
CRect rcStaticWnd;
|
|
CWnd* pStaticWnd = GetDlgItem(IDC_STATIC_2D_SPT_BASIC_INFO);
|
|
if (pStaticWnd != NULL)
|
|
{
|
|
pStaticWnd->GetClientRect(&rcStaticWnd);
|
|
}
|
|
CRect rcClient;
|
|
GetClientRect(&rcClient);
|
|
CWnd *pStatic = GetDlgItem(IDC_STATIC_FRAME);
|
|
if (pStatic != NULL)
|
|
{
|
|
rcClient.top = rcStaticWnd.bottom +5;
|
|
rcClient.left += 10;
|
|
rcClient.right -= 10;
|
|
rcClient.bottom -= 20;
|
|
pStatic->MoveWindow(&rcClient);
|
|
}
|
|
m_pOpCreateSptFrame = (COpCreateSptFrame*)((CRuntimeClass*)RUNTIME_CLASS(COpCreateSptFrame))->CreateObject();
|
|
m_pOpCreateSptFrame->Create(NULL, NULL, WS_CHILD, rcClient, this);
|
|
|
|
//m_pOpCreateSptFrame->MoveWindow(&rect);
|
|
//m_pOpCreateSptFrame->ShowWindow(SW_SHOW);
|
|
|
|
|
|
|
|
// pCbEAmount = (CComboBox*)(GetDlgItem(IDC_SPT_EAMOUNT));
|
|
// pCbEAmount->ResetContent();
|
|
// for (iCAmount = (int)VAL_ONE; iCAmount <= CABLE_AMOUNT; iCAmount++)
|
|
// {
|
|
// szLabel.Empty();
|
|
// szLabel.Format(_T("%d"), iCAmount*ELECTRODE_AMOUNT_PERCABLE);
|
|
// pCbEAmount->AddString(szLabel);
|
|
// pCbEAmount->SetItemData(pCbEAmount->GetCount()-1, iCAmount*ELECTRODE_AMOUNT_PERCABLE);
|
|
// }
|
|
GetDlgItem(IDC_SPT_EAMOUNT)->SetWindowText(_T("0"));
|
|
|
|
pCbCHAmount = (CComboBox*)(GetDlgItem(IDC_SPT_CHAMOUNT));
|
|
pCbCHAmount->ResetContent();
|
|
for (iCHAmount = (int)VAL_ONE; iCHAmount <= CHANNEL_AMOUNT; iCHAmount++)
|
|
{
|
|
szLabel.Empty();
|
|
szLabel.Format(_T("%d"), iCHAmount);
|
|
pCbCHAmount->AddString(szLabel);
|
|
pCbCHAmount->SetItemData(pCbCHAmount->GetCount()-1, iCHAmount);
|
|
}
|
|
|
|
pCbCHAmount->SetCurSel((int)VAL_ZERO);
|
|
|
|
pLbChNumber = (CListBox*)(GetDlgItem(IDC_SPT_CHNUMBER));
|
|
OnSelchangeSptChamount();
|
|
|
|
pLbChNumber->SetCurSel((int)VAL_ZERO);
|
|
pCbCHAmount->EnableWindow(FALSE);
|
|
|
|
CChannel* pChannel = new CChannel;
|
|
pChannel->m_iChNumber = (int)VAL_ONE;
|
|
m_pNewScript->m_chaList.AddTail((void*)pChannel);
|
|
|
|
m_pOpCreateSptView = (COpCreateSptView*)(((COpCreateSptFrame*)(this->m_pOpCreateSptFrame))->m_pOpCreateSptView);
|
|
// m_pOpCreateSptInfoView = (COpCreateSptInfoView*)(((COpCreateSptFrame*)(this->m_pOpCreateSptFrame))->m_pOpCreateSptInfoView);
|
|
m_pOpCreateSptRecListView = (COpCreateSptRecListView*)(((COpCreateSptFrame*)(this->m_pOpCreateSptFrame))->m_pOpCreateSptRecListView);
|
|
m_pOpCreateSptFrame->MoveWindow(&rcClient);
|
|
m_pOpCreateSptFrame->ShowWindow(SW_SHOW);
|
|
//屏蔽点过滤
|
|
GetDlgItem(IDC_STATIC_PT_FILTER)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_TAB_OP_TP)->ShowWindow(SW_HIDE);
|
|
m_cmbMNCtrl.ResetContent();
|
|
m_cmbMNCtrl.AddString(_T("Fixed"));
|
|
m_cmbMNCtrl.AddString(_T("Auto"));
|
|
m_cmbMNCtrl.SetCurSel(0);
|
|
GetDlgItem(IDC_STATIC_MN_CTRL)->SetWindowText(_T("*MN Space Control:"));
|
|
GetDlgItem(IDC_STATIC_MN_SPACE)->SetWindowText(_T("*MN Space:"));
|
|
GetDlgItem(IDC_STATIC_MN_CTRL)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_COMBO_MN_CTRL)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_STATIC_MN_SPACE)->ShowWindow(SW_HIDE);
|
|
|
|
|
|
ShowLayerFilterInfo(FALSE);
|
|
InitUIByLanguage(g_iUILanguage);
|
|
//加入跑极方式
|
|
m_cmbArRunMethod.ResetContent();
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
{
|
|
m_cmbArRunMethod.AddString(_T("乱序"));
|
|
m_cmbArRunMethod.AddString(_T("按层"));
|
|
m_cmbArRunMethod.AddString(_T("按滚动"));
|
|
}
|
|
else
|
|
{
|
|
m_cmbArRunMethod.AddString(_T("Disorder"));
|
|
m_cmbArRunMethod.AddString(_T("By layer"));
|
|
m_cmbArRunMethod.AddString(_T("By rolling section"));
|
|
|
|
SetDlgItemText(IDC_CHECK_STRONG_GRADIENT_SWITCH, _T("reverse"));
|
|
}
|
|
|
|
m_cmbArRunMethod.SetCurSel(0);
|
|
GetDlgItem(IDC_STATIC_2D_SPT_CHANNEL_NUM)->SetWindowText(_T("Channel Index"));
|
|
GetDlgItem(IDC_SPT_CHAMOUNT)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_STATIC_2D_SPT_CHANNEL_INDEX)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_SPT_CHNUMBER)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_SPT_PARAM_A)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_SPT_PARAM_N)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_STATIC_2D_SPT_A)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_STATIC_2D_SPT_N)->ShowWindow(SW_HIDE);
|
|
if (EN_MULTI_CHANNEL == theApp.m_ucIsMultiChannel)
|
|
GetDlgItem(IDC_EDIT_SIG_CHANNEL)->SetWindowText(_T("Multi-Channel\r\nOnly"));
|
|
else
|
|
GetDlgItem(IDC_EDIT_SIG_CHANNEL)->SetWindowText(_T("Single-Channel\r\nOnly"));
|
|
|
|
GetDlgItem(IDC_STATIC_START_ELEC_NUMBER)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_EDIT_START_ELECTRODE_ID)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_STATIC_N_MIN)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_EDIT_N_MIN)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_STATIC_N_MAX)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_EDIT_N_MAX)->ShowWindow(SW_HIDE);
|
|
// INIT_EASYSIZE;
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void COpCreateSptDlg::OnSelchangeTabOpTp(NMHDR* pNMHDR, LRESULT* pResult)
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
int iCurSel = VAL_MINUS_ONE;
|
|
|
|
iCurSel = m_tpTab.GetCurSel();
|
|
switch (iCurSel)
|
|
{
|
|
case TAB_INDEX_TP_SEL:
|
|
m_opSelSptTpDlg.ShowWindow(true);
|
|
m_opSelSptTpDlg.ShowWindow(false);
|
|
break;
|
|
|
|
case TAB_INDEX_TP_SORT:
|
|
m_opSelSptTpDlg.ShowWindow(false);
|
|
m_opSelSptTpDlg.ShowWindow(true);
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
m_tpTab.SetFocus();
|
|
|
|
*pResult = VAL_ZERO;
|
|
}
|
|
|
|
void COpCreateSptDlg::OnOK()
|
|
{
|
|
// TODO: Add extra validation here
|
|
|
|
int iArrayCnt = m_pChannel->m_sptRecArray.GetSize();
|
|
bool bIsSelPt = false;
|
|
CSptRecord* pSptRecord = NULL;
|
|
|
|
for (int i = 0; i < iArrayCnt; i++)
|
|
{
|
|
pSptRecord = (CSptRecord*)m_pChannel->m_sptRecArray.GetAt(i);
|
|
if (pSptRecord->m_bIsSel)
|
|
{
|
|
bIsSelPt = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!bIsSelPt)
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("脚本的测点数不能为0"));
|
|
else
|
|
MessageBoxEx(NULL, _T("The number of point in the script can not be zero"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return;
|
|
}
|
|
|
|
CString szSName = _T("");
|
|
CString szCaption = _T("");
|
|
|
|
this->GetDlgItem(IDC_SPT_SNAME)->GetWindowText(szSName);
|
|
szSName.TrimLeft();
|
|
szSName.TrimRight();
|
|
if (_T("") == szSName)
|
|
{
|
|
szCaption.Empty();
|
|
szCaption.LoadString(IDS_OP_LC_SCON_INPUT_SNAME+g_UIOffset);
|
|
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
|
|
MessageBox(szCaption, NULL, MB_ICONWARNING);
|
|
this->GetDlgItem(IDC_SPT_SNAME)->SetFocus();
|
|
}
|
|
else
|
|
{
|
|
if (IsExistSpecialChar(szSName))
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("脚本名中含有特殊字符,请重新输入"));
|
|
else
|
|
MessageBoxEx(NULL, _T("There are some special charcter in script name,please rename it!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return;
|
|
}
|
|
AfxGetMainWnd()->EnableWindow();
|
|
if (!UpdateData(TRUE))
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("更新失败"));
|
|
else
|
|
MessageBoxEx(NULL, _T("Updatedata failed!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
}
|
|
|
|
*m_pRet = 1;
|
|
this->EndModalLoop(*m_pRet); //结束非模态对话框模态循环
|
|
}
|
|
// CDialog::OnOK();
|
|
}
|
|
|
|
void COpCreateSptDlg::OnCancel()
|
|
{
|
|
// TODO: Add extra cleanup here
|
|
if (m_pOpCreateSptRecListView->GetListCtrl().GetItemCount() > 0)
|
|
{
|
|
//All data in the list would be deleted if you close dialog without save!\r\n")
|
|
// _T("Do you want to continue to close dialog
|
|
int nRet = 0;
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
nRet = AfxMessageBox(_T("是否取消脚本创建?"), MB_YESNO | MB_ICONINFORMATION);
|
|
else
|
|
nRet = MessageBoxEx(NULL, _T("Do you want to cancel the script?"), STRING_MESSAGEBOXEX_TITLE, MB_YESNO | MB_ICONINFORMATION, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
|
|
if (IDYES != nRet)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
CListBox* pLbChNumber = (CListBox*)GetDlgItem(IDC_SPT_CHNUMBER);
|
|
POSITION pos = m_pNewScript->m_chaList.FindIndex(pLbChNumber->GetCurSel());
|
|
CChannel* pChannel = (CChannel*)m_pNewScript->m_chaList.GetAt(pos);
|
|
|
|
if (pChannel->m_sptRecArray.GetSize() == m_pOpCreateSptRecListView->GetListCtrl().GetItemCount())
|
|
{
|
|
pChannel->ClearSptRecList();
|
|
AfxGetMainWnd()->EnableWindow();
|
|
*m_pRet = 2;
|
|
this->EndModalLoop(*m_pRet); //结束非模态对话框模态循环
|
|
}
|
|
|
|
// CDialog::OnCancel();
|
|
}
|
|
|
|
BOOL COpCreateSptDlg::Create(UINT nID, CWnd* pParentWnd)
|
|
{
|
|
// TODO: Add your specialized code here and/or call the base class
|
|
pParentWnd->EnableWindow(FALSE);
|
|
return CDialog::Create(IDD, pParentWnd);
|
|
}
|
|
|
|
void COpCreateSptDlg::OnSelchangeSptChamount()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
CString szLabel = _T("");
|
|
|
|
CListBox* pLbChNumber = (CListBox*)GetDlgItem(IDC_SPT_CHNUMBER);
|
|
CComboBox* pCbChAmount = (CComboBox*)(GetDlgItem(IDC_SPT_CHAMOUNT));
|
|
|
|
int iChNumber = (int)VAL_ONE;
|
|
|
|
int iChAmount = pCbChAmount->GetItemData(pCbChAmount->GetCurSel());
|
|
|
|
// UpdateData(TRUE);
|
|
pLbChNumber->ResetContent();
|
|
while (iChNumber <= iChAmount)
|
|
{
|
|
szLabel.Empty();
|
|
szLabel.Format(_T("%d"), iChNumber);
|
|
pLbChNumber->AddString(szLabel);
|
|
pLbChNumber->SetItemData(pLbChNumber->GetCount()-1, iChNumber);
|
|
iChNumber++;
|
|
}
|
|
// UpdateData(FALSE);
|
|
pLbChNumber->EnableWindow(FALSE);
|
|
}
|
|
|
|
void COpCreateSptDlg::OnSelchangeSptAr()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
CComboBox* pCbAR = (CComboBox*)GetDlgItem(IDC_SPT_AR);
|
|
int nCurl = pCbAR->GetCurSel();
|
|
GetDlgItem(IDC_STATIC_SPT_SEPRATE)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_EDIT_SPT_SEPRATE)->ShowWindow(SW_HIDE);
|
|
if ((int)VAL_MINUS_ONE == nCurl)
|
|
{
|
|
return;
|
|
}
|
|
|
|
int iAR = pCbAR->GetItemData(nCurl);
|
|
|
|
//加强梯度,是否逆向排序开关
|
|
if (AR_STRONG_GRADIENT == iAR)
|
|
{
|
|
GetDlgItem(IDC_CHECK_STRONG_GRADIENT_SWITCH)->ShowWindow(SW_SHOW);
|
|
}
|
|
else
|
|
{
|
|
GetDlgItem(IDC_CHECK_STRONG_GRADIENT_SWITCH)->ShowWindow(SW_HIDE);
|
|
}
|
|
|
|
if (AR_CROSS_HOLE_TYPE == iAR)
|
|
{
|
|
CString strTmp = _T("");
|
|
strTmp.Format(_T("%.2f"), m_fSptSeprate);
|
|
// GetDlgItem(IDC_STATIC_SPT_SEPRATE)->ShowWindow(SW_SHOW);
|
|
// GetDlgItem(IDC_EDIT_SPT_SEPRATE)->ShowWindow(SW_SHOW);
|
|
// GetDlgItem(IDC_EDIT_SPT_SEPRATE)->SetWindowText(strTmp);
|
|
m_cmbArRunMethod.SetCurSel(0);
|
|
m_cmbArRunMethod.EnableWindow(FALSE);
|
|
}
|
|
else if (AR_CUSTOM_2D_TYPE == iAR ||
|
|
AR_EDGE_GARDIENT == iAR ||
|
|
AR_BIPOLE_HOLE_SPT == iAR ||
|
|
AR_DOUBLE_SIZE_3P == iAR)
|
|
{
|
|
m_cmbArRunMethod.SetCurSel(0);
|
|
m_cmbArRunMethod.EnableWindow(FALSE);
|
|
}
|
|
else
|
|
{
|
|
m_cmbArRunMethod.EnableWindow(TRUE);
|
|
m_cmbArRunMethod.SetCurSel(0);
|
|
}
|
|
if (AR_SCHLUMBERGER == iAR)
|
|
{
|
|
GetDlgItem(IDC_STATIC_MN_CTRL)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_COMBO_MN_CTRL)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_EDIT_SPT_SEPRATE)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_STATIC_MN_SPACE)->ShowWindow(SW_SHOW);
|
|
if (0 == m_cmbMNCtrl.GetCurSel())
|
|
GetDlgItem(IDC_EDIT_SPT_SEPRATE)->SetWindowText("1");
|
|
else
|
|
GetDlgItem(IDC_EDIT_SPT_SEPRATE)->SetWindowText("6");
|
|
}
|
|
else
|
|
{
|
|
if (AR_BIPOLE_HOLE_SPT == iAR)
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
GetDlgItem(IDC_STATIC_SPT_SEPRATE)->SetWindowText(_T(" *表面电极数"));
|
|
else
|
|
GetDlgItem(IDC_STATIC_SPT_SEPRATE)->SetWindowText(_T("*Surface Electrode number"));
|
|
GetDlgItem(IDC_STATIC_SPT_SEPRATE)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_EDIT_SPT_SEPRATE)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_EDIT_SPT_SEPRATE)->SetWindowText(_T("0"));
|
|
}
|
|
else if (AR_DOUBLE_SIZE_3P == iAR)
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
GetDlgItem(IDC_STATIC_SPT_SEPRATE)->SetWindowText(_T(" *间隔系数"));
|
|
else
|
|
GetDlgItem(IDC_STATIC_SPT_SEPRATE)->SetWindowText(_T("*Interval Coffient"));
|
|
GetDlgItem(IDC_STATIC_SPT_SEPRATE)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_EDIT_SPT_SEPRATE)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_EDIT_SPT_SEPRATE)->SetWindowText(_T("1"));
|
|
}
|
|
else if (AR_DIP_DIP == iAR)
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
GetDlgItem(IDC_STATIC_SPT_SEPRATE)->SetWindowText(_T(" *偶极距离因子"));
|
|
else
|
|
GetDlgItem(IDC_STATIC_SPT_SEPRATE)->SetWindowText(_T(" *Spacing Units"));
|
|
GetDlgItem(IDC_STATIC_SPT_SEPRATE)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_EDIT_SPT_SEPRATE)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_EDIT_SPT_SEPRATE)->SetWindowText(_T("6"));
|
|
}
|
|
GetDlgItem(IDC_STATIC_MN_CTRL)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_COMBO_MN_CTRL)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_STATIC_MN_SPACE)->ShowWindow(SW_HIDE);
|
|
}
|
|
|
|
//进行单通道和多通道的提示显示
|
|
if((iAR >0 && iAR < 4) || 11 == iAR || 39 == iAR || AR_WENNER_SCH_BASIC == iAR)
|
|
{
|
|
if (EN_MULTI_CHANNEL == theApp.m_ucIsMultiChannel)
|
|
GetDlgItem(IDC_EDIT_SIG_CHANNEL)->SetWindowText(_T("Multi-Channel\r\nOnly"));
|
|
else
|
|
GetDlgItem(IDC_EDIT_SIG_CHANNEL)->SetWindowText(_T("Single-Channel\r\nOnly"));
|
|
m_cmbArRunMethod.EnableWindow(TRUE);
|
|
}
|
|
else
|
|
{
|
|
m_cmbArRunMethod.SetCurSel(0);
|
|
if (EN_MULTI_CHANNEL == theApp.m_ucIsMultiChannel)
|
|
{
|
|
GetDlgItem(IDC_EDIT_SIG_CHANNEL)->SetWindowText(_T("Multi-Channel\r\nOr\r\nSingle-Channel"));
|
|
m_cmbArRunMethod.EnableWindow(FALSE);
|
|
}
|
|
else
|
|
{
|
|
GetDlgItem(IDC_EDIT_SIG_CHANNEL)->SetWindowText(_T("Single-Channel\r\nOnly"));
|
|
if ((iAR > 3 && iAR < 7)||iAR == 9)
|
|
m_cmbArRunMethod.EnableWindow(TRUE);
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
//三极装置增加a、n参数输入
|
|
if (AR_POLE_DIPOLE_AMN == iAR || AR_DIPOLE_POLE_MNB == iAR)
|
|
{
|
|
GetDlgItem(IDC_SPT_PARAM_A)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_SPT_PARAM_N)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_SPT_PARAM_A)->SetWindowTextA(_T("8"));
|
|
GetDlgItem(IDC_SPT_PARAM_N)->SetWindowTextA(_T("10"));
|
|
GetDlgItem(IDC_STATIC_2D_SPT_A)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_STATIC_2D_SPT_N)->ShowWindow(SW_SHOW);
|
|
}
|
|
else
|
|
{
|
|
GetDlgItem(IDC_SPT_PARAM_A)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_SPT_PARAM_N)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_STATIC_2D_SPT_A)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_STATIC_2D_SPT_N)->ShowWindow(SW_HIDE);
|
|
}
|
|
|
|
if (AR_S3P_MEDIUM == iAR)
|
|
{
|
|
GetDlgItem(IDC_STATIC_START_ELEC_NUMBER)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_EDIT_START_ELECTRODE_ID)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_STATIC_N_MIN)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_EDIT_N_MIN)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_STATIC_N_MAX)->ShowWindow(SW_SHOW);
|
|
GetDlgItem(IDC_EDIT_N_MAX)->ShowWindow(SW_SHOW);
|
|
}
|
|
else
|
|
{
|
|
GetDlgItem(IDC_STATIC_START_ELEC_NUMBER)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_EDIT_START_ELECTRODE_ID)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_STATIC_N_MIN)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_EDIT_N_MIN)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_STATIC_N_MAX)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_EDIT_N_MAX)->ShowWindow(SW_HIDE);
|
|
}
|
|
/*
|
|
CString szCaption = _T("");
|
|
|
|
CMedium* pMedium = NULL;
|
|
CSptRecord* pSptRecord = NULL;
|
|
|
|
CListBox* pLbChNumber = (CListBox*)GetDlgItem(IDC_SPT_CHNUMBER);
|
|
CComboBox* pCbEAmount = (CComboBox*)GetDlgItem(IDC_SPT_EAMOUNT);
|
|
CComboBox* pCbAR = (CComboBox*)GetDlgItem(IDC_SPT_AR);
|
|
|
|
DWORD dwMedHandle = (DWORD)VAL_ZERO;
|
|
BOOL bIsFin = TRUE;
|
|
|
|
int iAR = (int)VAL_ZERO;
|
|
int iChIndex = (int)VAL_ZERO;
|
|
int iChCount = (int)VAL_ZERO;
|
|
int iRecIndex = (int)VAL_ZERO;
|
|
|
|
POSITION posCh = NULL;
|
|
CString szEU = _T("");
|
|
float fEU = (float)VAL_ZERO;
|
|
|
|
if (m_edEU.GetWindowTextLength() == (int)VAL_ZERO)
|
|
{
|
|
szCaption.Empty();
|
|
szCaption.LoadString(IDS_OP_LC_SCON_INPUT_EU);
|
|
MessageBox(szCaption, NULL, MB_ICONERROR);
|
|
m_edEU.SetFocus();
|
|
return;
|
|
}
|
|
|
|
m_edEU.GetWindowText(szEU);
|
|
fEU = (float)atof(szEU);
|
|
|
|
if ((float)VAL_ZERO == fEU)
|
|
{
|
|
szCaption.Empty();
|
|
szCaption.LoadString(IDS_OP_LC_SCON_NOTZERO_EU);
|
|
MessageBox(szCaption, NULL, MB_ICONERROR);
|
|
m_edEU.SetFocus();
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
if ((int)VAL_ZERO == m_pNewScript->m_iEAmount)
|
|
{
|
|
szCaption.Empty();
|
|
szCaption.LoadString(IDS_OP_LC_SCON_SEL_EAMOUNT);
|
|
MessageBox(szCaption, NULL, MB_ICONERROR);
|
|
|
|
pCbEAmount->SetFocus();
|
|
return;
|
|
}
|
|
|
|
this->m_pOpCreateSptView->m_bIsDraw = FALSE;
|
|
POSITION pos = m_pNewScript->m_chaList.FindIndex(pLbChNumber->GetCurSel());
|
|
CChannel* pChannel = (CChannel*)m_pNewScript->m_chaList.GetAt(pos);
|
|
|
|
if (NULL != pChannel)
|
|
{
|
|
// iEAmount = pCbEAmount->GetItemData(pCbEAmount->GetCurSel());
|
|
m_pOpCreateSptView->m_pNewChannel = pChannel;
|
|
m_pOpCreateSptView->m_iEAmount = m_pNewScript->m_iEAmount;
|
|
|
|
m_pOpCreateSptInfoView->m_pNewChannel = pChannel;
|
|
m_pOpCreateSptRecListView->m_pNewChannel = pChannel;
|
|
|
|
iAR = pCbAR->GetItemData(pCbAR->GetCurSel());
|
|
dwMedHandle = m_handleProcessor.GenerateHandle(iAR, PZ_STYLE_MED_DEF);
|
|
pChannel->m_pMedium = m_pMedLinkList->Find(dwMedHandle);
|
|
pMedium = pChannel->m_pMedium;
|
|
|
|
pChannel->ClearSptRecList();
|
|
if (NULL != pMedium)
|
|
{
|
|
pMedium->GenerateSptRecElecVal(m_pNewScript->m_iEAmount, fEU, &(pChannel->m_iMaxLevel), &(pChannel->m_iPtAmount), &(pChannel->m_sptRecArray));
|
|
|
|
m_pOpCreateSptRecListView->GetListCtrl().DeleteAllItems();
|
|
while (iRecIndex < pChannel->m_sptRecArray.GetSize())
|
|
{
|
|
DoEvent(this->m_hWnd);
|
|
|
|
m_pOpCreateSptRecListView->GetListCtrl().InsertItem(iRecIndex, _T(""));
|
|
|
|
pSptRecord = (CSptRecord*)(pChannel->m_sptRecArray.GetAt(iRecIndex));
|
|
if (NULL != pSptRecord)
|
|
{
|
|
InsertSptRecToRecListView(pSptRecord);
|
|
}
|
|
|
|
iRecIndex++;
|
|
DoEvent(this->m_hWnd);
|
|
}
|
|
}
|
|
}
|
|
|
|
posCh = NULL;
|
|
iChIndex = (int)VAL_ZERO;
|
|
iChCount = m_pNewScript->m_chaList.GetCount();
|
|
|
|
while (iChIndex < iChCount)
|
|
{
|
|
posCh = m_pNewScript->m_chaList.FindIndex(iChIndex);
|
|
pChannel = (CChannel*)m_pNewScript->m_chaList.GetAt(posCh);
|
|
bIsFin = bIsFin && (pChannel->m_sptRecArray.GetSize() > (int)VAL_ZERO);
|
|
iChIndex ++;
|
|
}
|
|
|
|
if (TRUE == bIsFin)
|
|
{
|
|
this->GetDlgItem(IDOK)->EnableWindow();
|
|
}
|
|
else
|
|
{
|
|
this->GetDlgItem(IDOK)->EnableWindow(FALSE);
|
|
}
|
|
|
|
this->m_pOpCreateSptView->m_bIsDraw = TRUE;
|
|
|
|
this->m_pOpCreateSptView->m_iMul = 2;
|
|
|
|
this->m_pOpCreateSptView->Invalidate(FALSE);
|
|
this->m_pOpCreateSptView->SetFocus();
|
|
*/
|
|
|
|
}
|
|
|
|
void COpCreateSptDlg::InsertSptRecToRecListView(CSptRecord* pSptRecord)
|
|
{
|
|
CString szLabel = _T("");
|
|
int iRecIndex = (int)VAL_ZERO;
|
|
|
|
iRecIndex = pSptRecord->m_iTsn;
|
|
iRecIndex--;
|
|
|
|
m_pOpCreateSptRecListView->GetListCtrl().SetItemData(iRecIndex, (DWORD)pSptRecord);
|
|
|
|
szLabel.Empty();
|
|
szLabel.Format(_T("%d"), pSptRecord->m_iTsn);
|
|
m_pOpCreateSptRecListView->GetListCtrl().SetItemText(iRecIndex, 0, szLabel);
|
|
|
|
szLabel.Empty();
|
|
szLabel.Format(_T("%d"), pSptRecord->m_iC1);
|
|
m_pOpCreateSptRecListView->GetListCtrl().SetItemText(iRecIndex, 1, szLabel);
|
|
|
|
szLabel.Empty();
|
|
szLabel.Format(_T("%d"), pSptRecord->m_iC2);
|
|
m_pOpCreateSptRecListView->GetListCtrl().SetItemText(iRecIndex, 2, szLabel);
|
|
|
|
szLabel.Empty();
|
|
szLabel.Format(_T("%d"), pSptRecord->m_iP1);
|
|
m_pOpCreateSptRecListView->GetListCtrl().SetItemText(iRecIndex, 3, szLabel);
|
|
|
|
szLabel.Empty();
|
|
szLabel.Format(_T("%d"), pSptRecord->m_iP2);
|
|
m_pOpCreateSptRecListView->GetListCtrl().SetItemText(iRecIndex, 4, szLabel);
|
|
|
|
szLabel.Empty();
|
|
szLabel.Format(_T("%f"), pSptRecord->m_fK);
|
|
m_pOpCreateSptRecListView->GetListCtrl().SetItemText(iRecIndex, 5, szLabel);
|
|
|
|
szLabel.Empty();
|
|
szLabel.Format(_T("%d"), pSptRecord->m_iN);
|
|
m_pOpCreateSptRecListView->GetListCtrl().SetItemText(iRecIndex, 6, szLabel);
|
|
|
|
szLabel.Empty();
|
|
szLabel.Format(_T("%d"), pSptRecord->m_iLevel);
|
|
m_pOpCreateSptRecListView->GetListCtrl().SetItemText(iRecIndex, 7, szLabel);
|
|
|
|
m_pOpCreateSptRecListView->GetListCtrl().SetCheck(iRecIndex, pSptRecord->m_bIsSel);
|
|
|
|
}
|
|
/*
|
|
void COpCreateSptDlg::OnSelchangeSptEamount()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
|
|
BOOL bIsFin = TRUE;
|
|
|
|
int iAR = (int)VAL_ZERO;
|
|
int iChIndex = (int)VAL_ZERO;
|
|
int iChCount = (int)VAL_ZERO;
|
|
int iRecIndex = (int)VAL_ZERO;
|
|
|
|
CString szCaption = _T("");
|
|
POSITION posCh = NULL;
|
|
|
|
DWORD dwMedHandle = (DWORD)VAL_ZERO;
|
|
|
|
CString szEU = _T("");
|
|
float fEU = (float)VAL_ZERO;
|
|
|
|
CMedium* pMedium = NULL;
|
|
CSptRecord* pSptRecord = NULL;
|
|
|
|
CComboBox* pCbAR = (CComboBox*)GetDlgItem(IDC_SPT_AR);
|
|
CListBox* pLbChNumber = (CListBox*)GetDlgItem(IDC_SPT_CHNUMBER);
|
|
|
|
CComboBox* pCbEAmount = (CComboBox*)GetDlgItem(IDC_SPT_EAMOUNT);
|
|
m_pNewScript->m_iEAmount = pCbEAmount->GetItemData(pCbEAmount->GetCurSel());
|
|
|
|
if (pCbAR->GetCurSel() != (int)VAL_MINUS_ONE)
|
|
{
|
|
|
|
if (m_edEU.GetWindowTextLength() == (int)VAL_ZERO)
|
|
{
|
|
szCaption.Empty();
|
|
szCaption.LoadString(IDS_OP_LC_SCON_INPUT_EU);
|
|
MessageBox(szCaption, NULL, MB_ICONERROR);
|
|
m_edEU.SetFocus();
|
|
return;
|
|
}
|
|
|
|
m_edEU.GetWindowText(szEU);
|
|
fEU = (float)atof(szEU);
|
|
|
|
if ((float)VAL_ZERO == fEU)
|
|
{
|
|
szCaption.Empty();
|
|
szCaption.LoadString(IDS_OP_LC_SCON_NOTZERO_EU);
|
|
MessageBox(szCaption, NULL, MB_ICONERROR);
|
|
m_edEU.SetFocus();
|
|
return;
|
|
}
|
|
|
|
|
|
this->m_pOpCreateSptView->m_bIsDraw = FALSE;
|
|
POSITION pos = m_pNewScript->m_chaList.FindIndex(pLbChNumber->GetCurSel());
|
|
CChannel* pChannel = (CChannel*)m_pNewScript->m_chaList.GetAt(pos);
|
|
|
|
if (NULL != pChannel)
|
|
{
|
|
// iEAmount = pCbEAmount->GetItemData(pCbEAmount->GetCurSel());
|
|
m_pOpCreateSptView->m_pNewChannel = pChannel;
|
|
m_pOpCreateSptView->m_iEAmount = m_pNewScript->m_iEAmount;
|
|
|
|
m_pOpCreateSptInfoView->m_pNewChannel = pChannel;
|
|
m_pOpCreateSptRecListView->m_pNewChannel = pChannel;
|
|
|
|
iAR = pCbAR->GetItemData(pCbAR->GetCurSel());
|
|
dwMedHandle = m_handleProcessor.GenerateHandle(iAR, PZ_STYLE_MED_DEF);
|
|
pChannel->m_pMedium = m_pMedLinkList->Find(dwMedHandle);
|
|
pMedium = pChannel->m_pMedium;
|
|
|
|
pChannel->ClearSptRecList();
|
|
if (NULL != pMedium)
|
|
{
|
|
pMedium->GenerateSptRecElecVal(m_pNewScript->m_iEAmount, fEU, &(pChannel->m_iMaxLevel), &(pChannel->m_iPtAmount), &(pChannel->m_sptRecArray));
|
|
|
|
m_pOpCreateSptRecListView->GetListCtrl().DeleteAllItems();
|
|
while (iRecIndex < pChannel->m_sptRecArray.GetSize())
|
|
{
|
|
DoEvent(this->m_hWnd);
|
|
|
|
m_pOpCreateSptRecListView->GetListCtrl().InsertItem(iRecIndex, _T(""));
|
|
|
|
pSptRecord = (CSptRecord*)(pChannel->m_sptRecArray.GetAt(iRecIndex));
|
|
if (NULL != pSptRecord)
|
|
{
|
|
InsertSptRecToRecListView(pSptRecord);
|
|
}
|
|
|
|
iRecIndex++;
|
|
DoEvent(this->m_hWnd);
|
|
}
|
|
}
|
|
}
|
|
|
|
posCh = NULL;
|
|
iChIndex = (int)VAL_ZERO;
|
|
iChCount = m_pNewScript->m_chaList.GetCount();
|
|
|
|
while (iChIndex < iChCount)
|
|
{
|
|
posCh = m_pNewScript->m_chaList.FindIndex(iChIndex);
|
|
pChannel = (CChannel*)m_pNewScript->m_chaList.GetAt(posCh);
|
|
bIsFin = bIsFin && (pChannel->m_sptRecArray.GetSize() > (int)VAL_ZERO);
|
|
iChIndex ++;
|
|
}
|
|
|
|
if (TRUE == bIsFin)
|
|
{
|
|
this->GetDlgItem(IDOK)->EnableWindow();
|
|
}
|
|
else
|
|
{
|
|
this->GetDlgItem(IDOK)->EnableWindow(FALSE);
|
|
}
|
|
|
|
this->m_pOpCreateSptView->m_bIsDraw = TRUE;
|
|
|
|
this->m_pOpCreateSptView->m_iMul = 2;
|
|
|
|
this->m_pOpCreateSptView->Invalidate(FALSE);
|
|
this->m_pOpCreateSptView->SetFocus();
|
|
}
|
|
|
|
}*/
|
|
int COpCreateSptDlg::GetMinEAmountFromArType(int iArrType)
|
|
{
|
|
switch (iArrType)
|
|
{
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
case 9:
|
|
case 11:
|
|
case 16:
|
|
case AR_WENNER_SCH_BASIC:
|
|
case 39:
|
|
case 41:
|
|
case 42:
|
|
case AR_S3P_MEDIUM:
|
|
return 4;
|
|
case 4:
|
|
case 5:
|
|
case 43:
|
|
return 3;
|
|
case 6:
|
|
return 2;
|
|
case 40:
|
|
return 0;
|
|
case AR_STRONG_GRADIENT:
|
|
return 20;
|
|
default :
|
|
return -1;
|
|
}
|
|
}
|
|
void COpCreateSptDlg::OnGen()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
// if (!UpdateData(TRUE))
|
|
// {
|
|
// AfxMessageBox(_T("set param error!"));
|
|
// return;
|
|
// }
|
|
|
|
CProgressDlg ProgressDlg;
|
|
ProgressDlg.DoModal();
|
|
HANDLE hThread = ::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)GenerateScriptTestThread, this, 0, 0);
|
|
if (INVALID_HANDLE_VALUE == hThread)
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("生成脚本测点创建线程失败."));
|
|
else
|
|
MessageBoxEx(NULL, _T("Thread for generating script measure points creation failed."), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
|
|
|
|
//CFileOperTools::GetInstance()->WriteComLog(_T("Create Thread failed to upload device market data to Cloud"));
|
|
}
|
|
CloseHandle(hThread);
|
|
}
|
|
|
|
UINT COpCreateSptDlg::GenerateScriptTestThread(LPVOID lParam)
|
|
{
|
|
COpCreateSptDlg* pThis = (COpCreateSptDlg*)lParam;
|
|
if (NULL == pThis)
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
|
|
CString szCaption = _T("");
|
|
|
|
CListBox* pLbChNumber = (CListBox*)pThis->GetDlgItem(IDC_SPT_CHNUMBER);
|
|
// CComboBox* pCbEAmount = (CComboBox*)GetDlgItem(IDC_SPT_EAMOUNT);
|
|
CComboBox* pCbAR = (CComboBox*)pThis->GetDlgItem(IDC_SPT_AR);
|
|
|
|
DWORD dwMedHandle = (DWORD)VAL_ZERO;
|
|
BOOL bIsFin = TRUE;
|
|
|
|
int iAR = (int)VAL_ZERO;
|
|
|
|
// CString szEU = _T("");
|
|
// float fEU = (float)VAL_ZERO;
|
|
|
|
// if (m_edEU.GetWindowTextLength() == (int)VAL_ZERO)
|
|
// {
|
|
// szCaption.Empty();
|
|
// szCaption.LoadString(IDS_OP_LC_SCON_INPUT_EU);
|
|
// MessageBox(szCaption, NULL, MB_ICONWARNING);
|
|
// m_edEU.SetFocus();
|
|
// return;
|
|
// }
|
|
|
|
// m_edEU.GetWindowText(szEU);
|
|
// fEU = (float)atof(szEU);
|
|
|
|
// if ((float)VAL_ZERO == fEU)
|
|
// {
|
|
// szCaption.Empty();
|
|
// szCaption.LoadString(IDS_OP_LC_SCON_NOTZERO_EU);
|
|
// MessageBox(szCaption, NULL, MB_ICONWARNING);
|
|
// m_edEU.SetFocus();
|
|
// return;
|
|
// }
|
|
|
|
if ((int)VAL_MINUS_ONE == pCbAR->GetCurSel())
|
|
{
|
|
szCaption.Empty();
|
|
szCaption.LoadString(IDS_OP_LC_SCON_SEL_AR + g_UIOffset);
|
|
hHook = SetWindowsHookEx(WH_CBT, (HOOKPROC)CBTHookProc, AfxGetInstanceHandle(), NULL);
|
|
//MessageBox(szCaption, NULL, MB_ICONWARNING);
|
|
MessageBoxEx(NULL, szCaption, STRING_MESSAGEBOXEX_TITLE, MB_ICONWARNING, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
pCbAR->SetFocus();
|
|
return -1;
|
|
}
|
|
|
|
iAR = pCbAR->GetItemData(pCbAR->GetCurSel());
|
|
|
|
// if (AR_CUSTOM_2D_TYPE == iAR)
|
|
// {
|
|
// CreateCustomSpt();
|
|
// return;
|
|
//
|
|
// }
|
|
|
|
CString strCbEAmount = _T("");
|
|
pThis->GetDlgItem(IDC_SPT_EAMOUNT)->GetWindowText(strCbEAmount);
|
|
if (strCbEAmount.IsEmpty())
|
|
{
|
|
szCaption.Empty();
|
|
szCaption.LoadString(IDS_OP_LC_SCON_SEL_EAMOUNT + g_UIOffset);
|
|
hHook = SetWindowsHookEx(WH_CBT, (HOOKPROC)CBTHookProc, AfxGetInstanceHandle(), NULL);
|
|
//MessageBox(szCaption, NULL, MB_ICONWARNING);
|
|
MessageBoxEx(NULL, szCaption, STRING_MESSAGEBOXEX_TITLE, MB_ICONWARNING, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return -1;
|
|
}
|
|
else
|
|
{
|
|
//这里取得电极数
|
|
int iEAmount = atoi(strCbEAmount);
|
|
int iMinCbNum = pThis->GetMinEAmountFromArType(iAR);
|
|
if (iMinCbNum < 0)
|
|
{
|
|
szCaption.Empty();
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
{
|
|
szCaption.Format(_T("Unknow Array type, value = %d"), iAR);
|
|
AfxMessageBox(szCaption);
|
|
}
|
|
else
|
|
{
|
|
szCaption.Format(_T("未知装置类型 %d"), iAR);
|
|
MessageBoxEx(NULL, szCaption, STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
if (iEAmount < iMinCbNum || iEAmount > MAX_CB_AMOUNT)
|
|
{
|
|
szCaption.Empty();
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
{
|
|
szCaption.Format(_T("电极数的取值范围为%d到%d."), iMinCbNum, MAX_CB_AMOUNT);
|
|
AfxMessageBox(szCaption);
|
|
}
|
|
else
|
|
{
|
|
szCaption.Format(_T("Please input an postive integer from %d to %d on electrode number"), iMinCbNum, MAX_CB_AMOUNT);
|
|
MessageBoxEx(NULL, szCaption, STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
}
|
|
return -1;
|
|
}
|
|
if (AR_CROSS_HOLE_TYPE == iAR)
|
|
{
|
|
if (iEAmount % 2 != 0)
|
|
{
|
|
szCaption.Empty();
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
{
|
|
szCaption = _T("跨孔偶级的电极数必须为偶数");
|
|
AfxMessageBox(szCaption);
|
|
}
|
|
else
|
|
{
|
|
szCaption = _T("The electrode number of Cross-Hole Dipole must be even number");
|
|
MessageBoxEx(NULL, szCaption, STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
}
|
|
return -1;
|
|
}
|
|
}
|
|
pThis->m_pNewScript->m_iEAmount = iEAmount;
|
|
}
|
|
|
|
if ((int)VAL_MINUS_ONE == pThis->m_cmbArRunMethod.GetCurSel())
|
|
{
|
|
hHook = SetWindowsHookEx(WH_CBT, (HOOKPROC)CBTHookProc, AfxGetInstanceHandle(), NULL);
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("请选择跑极方式."));
|
|
else
|
|
MessageBoxEx(NULL, _T("Please select run method of electrode."), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
pThis->m_cmbArRunMethod.SetFocus();
|
|
return -1;
|
|
}
|
|
int iSurfaceElectCnt = 0;
|
|
int iSepInterval = 0;
|
|
int iMNSpace = 0;
|
|
float fInterval = 0;
|
|
int iMaxDipoleA = 0;
|
|
int iMaxSepN = 0;
|
|
int iUpX = 0, iUpY = 0, iDownX = 0, iDownY = 0;
|
|
int iStartElectID = 0, iMinN = 0, iMaxN = 0;
|
|
int iIsolationLayers = 0; //Schlumberger装置Auto增加隔离层数控制
|
|
BYTE bStrongGradientSwitch = 0;
|
|
switch (iAR)
|
|
{
|
|
case AR_BIPOLE_HOLE_SPT:
|
|
{
|
|
CString strSurfaceElec = _T("");
|
|
pThis->GetDlgItem(IDC_EDIT_SPT_SEPRATE)->GetWindowText(strSurfaceElec);
|
|
if (!bIsInteger(strSurfaceElec))
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("地表电极数须为正数."));
|
|
else
|
|
MessageBoxEx(NULL, _T("Please input an postive integer on surface electrode number."), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return -1;
|
|
}
|
|
iSurfaceElectCnt = atoi(strSurfaceElec);
|
|
if (iSurfaceElectCnt < 2 || iSurfaceElectCnt >= pThis->m_pNewScript->m_iEAmount)
|
|
{
|
|
strSurfaceElec.Empty();
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
{
|
|
strSurfaceElec.Format(_T("地表电极的取值范围为2到%d."), pThis->m_pNewScript->m_iEAmount - 1);
|
|
AfxMessageBox(strSurfaceElec);
|
|
}
|
|
else
|
|
{
|
|
strSurfaceElec.Format(_T("Please input an postive integer from 2 to %d on surface electrode number"), pThis->m_pNewScript->m_iEAmount - 1);
|
|
MessageBoxEx(NULL, strSurfaceElec, STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
}
|
|
return -1;
|
|
}
|
|
}
|
|
break;
|
|
case AR_DOUBLE_SIZE_3P:
|
|
{
|
|
CString strSepInterval = _T("");
|
|
pThis->GetDlgItem(IDC_EDIT_SPT_SEPRATE)->GetWindowText(strSepInterval);
|
|
if (!bIsInteger(strSepInterval))
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("间隔系数的值须为正数."));
|
|
else
|
|
MessageBoxEx(NULL, _T("Please input an postive integer on interval coffient."), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return -1;
|
|
}
|
|
iSepInterval = atoi(strSepInterval);
|
|
if (iSepInterval < 1 || iSepInterval > pThis->m_pNewScript->m_iEAmount - 2)
|
|
{
|
|
strSepInterval.Empty();
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
{
|
|
strSepInterval.Format(_T("间隔系数的取值范围为1到%d."), pThis->m_pNewScript->m_iEAmount - 2);
|
|
AfxMessageBox(strSepInterval);
|
|
}
|
|
else
|
|
{
|
|
strSepInterval.Format(_T("Please input an postive integer from 1 to %d on interval coffient"), pThis->m_pNewScript->m_iEAmount - 2);
|
|
MessageBoxEx(NULL, strSepInterval, STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
}
|
|
return -1;
|
|
}
|
|
}
|
|
break;
|
|
case AR_SCHLUMBERGER:
|
|
{
|
|
if (0 == pThis->m_cmbMNCtrl.GetCurSel())
|
|
{
|
|
CString strTmp = _T("");
|
|
pThis->GetDlgItem(IDC_EDIT_SPT_SEPRATE)->GetWindowText(strTmp);
|
|
if (!bIsInteger(strTmp))
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("MN电极间距必须为正整数."));
|
|
else
|
|
MessageBoxEx(NULL, _T("Please input an postive integer on MN Space."), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return -1;
|
|
}
|
|
iMNSpace = atoi(strTmp);
|
|
if ((3 + iMNSpace > pThis->m_pNewScript->m_iEAmount) || iMNSpace < 1)
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
{
|
|
strTmp.Format(_T("MN间距的取值范围为从1到%d."), pThis->m_pNewScript->m_iEAmount - 3);
|
|
AfxMessageBox(strTmp);
|
|
}
|
|
else
|
|
{
|
|
strTmp.Format(_T("Please input an postive integer from 1 to %d on MN Space."), pThis->m_pNewScript->m_iEAmount - 3);
|
|
MessageBoxEx(NULL, strTmp, STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
}
|
|
return -1;
|
|
}
|
|
}
|
|
else if (1 == pThis->m_cmbMNCtrl.GetCurSel())//选中Auto
|
|
{
|
|
CString strTmp = _T("");
|
|
pThis->GetDlgItem(IDC_EDIT_SPT_SEPRATE)->GetWindowText(strTmp);
|
|
if (!bIsInteger(strTmp))
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("隔离层数必须为正整数."));
|
|
else
|
|
MessageBoxEx(NULL, _T("Isolation layers must be a positive integer."), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return -1;
|
|
}
|
|
iIsolationLayers = atoi(strTmp);
|
|
if ((iIsolationLayers > pThis->m_pNewScript->m_iEAmount / 3) || iIsolationLayers < 1)
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
{
|
|
strTmp.Format(_T("隔离层数取值范围为从1到%d."), pThis->m_pNewScript->m_iEAmount / 3);
|
|
AfxMessageBox(strTmp);
|
|
}
|
|
else
|
|
{
|
|
strTmp.Format(_T("Please input an postive integer from 1 to %d on Isolation layers."), pThis->m_pNewScript->m_iEAmount / 3);
|
|
MessageBoxEx(NULL, strTmp, STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
}
|
|
return -1;
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case AR_DIP_DIP:
|
|
{
|
|
CString strElecInterval = _T("");
|
|
pThis->GetDlgItem(IDC_EDIT_SPT_SEPRATE)->GetWindowText(strElecInterval);
|
|
if (strElecInterval.IsEmpty() || !bIsFloat(strElecInterval))
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("偶极间隔因子的值须为正数."));
|
|
else
|
|
MessageBoxEx(NULL, _T("Please input an postive value on spacing units."), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return -1;
|
|
}
|
|
fInterval = atof(strElecInterval);
|
|
if (fInterval < 1 || fInterval > pThis->m_pNewScript->m_iEAmount - 3)
|
|
{
|
|
strElecInterval.Empty();
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
{
|
|
strElecInterval.Format(_T("偶极间隔因子的取值范围为1到%d."), pThis->m_pNewScript->m_iEAmount - 3);
|
|
AfxMessageBox(strElecInterval);
|
|
}
|
|
else
|
|
{
|
|
strElecInterval.Format(_T("Please input an postive value from 1 to %d on spacing units"), pThis->m_pNewScript->m_iEAmount - 3);
|
|
MessageBoxEx(NULL, strElecInterval, STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
}
|
|
return -1;
|
|
}
|
|
pThis->GetDlgItem(IDC_EDIT_SPT_SEPRATE)->EnableWindow(FALSE);
|
|
}
|
|
break;
|
|
case AR_POLE_DIPOLE_AMN:
|
|
case AR_DIPOLE_POLE_MNB:
|
|
{
|
|
CString strIma, strImn;
|
|
pThis->GetDlgItem(IDC_SPT_PARAM_A)->GetWindowTextA(strIma);
|
|
pThis->GetDlgItem(IDC_SPT_PARAM_N)->GetWindowTextA(strImn);
|
|
if (strIma.IsEmpty())
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("请输入Max Dipole a值"));
|
|
else
|
|
MessageBoxEx(NULL, _T("Please enter Max Dipole a value."), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return -1;
|
|
}
|
|
iMaxDipoleA = atoi(strIma);
|
|
if (strImn.IsEmpty())
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("请输入Max sep n值"));
|
|
else
|
|
MessageBoxEx(NULL, _T("Please enter Max sep n value."), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return -1;
|
|
}
|
|
iMaxSepN = atoi(strImn);
|
|
}
|
|
break;
|
|
case AR_STRONG_GRADIENT:
|
|
{
|
|
bStrongGradientSwitch = ((CButton*)pThis->GetDlgItem(IDC_CHECK_STRONG_GRADIENT_SWITCH))->GetCheck();
|
|
}
|
|
break;
|
|
case AR_S3P_MEDIUM:
|
|
{
|
|
CString strStartElecID, strMinN, strMaxN;
|
|
pThis->GetDlgItemText(IDC_EDIT_START_ELECTRODE_ID, strStartElecID);
|
|
pThis->GetDlgItemText(IDC_EDIT_N_MIN, strMinN);
|
|
pThis->GetDlgItemText(IDC_EDIT_N_MAX, strMaxN);
|
|
if (strStartElecID.IsEmpty())
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("请输入起始电极号"));
|
|
else
|
|
MessageBoxEx(NULL, _T("Please enter start electrode ID."), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return -1;
|
|
}
|
|
iStartElectID = atoi(strStartElecID);
|
|
|
|
if (strMinN.IsEmpty())
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("请输入最小n值"));
|
|
else
|
|
MessageBoxEx(NULL, _T("Please enter min n value."), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return -1;
|
|
}
|
|
iMinN = atoi(strMinN);
|
|
|
|
if (strMaxN.IsEmpty())
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("请输入最大n值"));
|
|
else
|
|
MessageBoxEx(NULL, _T("Please enter max n value."), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return -1;
|
|
}
|
|
iMaxN = atoi(strMaxN);
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
// if (AR_CROSS_HOLE_TYPE == pCbAR->GetItemData(pCbAR->GetCurSel()))
|
|
// {
|
|
// CString strSep = _T("");
|
|
// GetDlgItem(IDC_EDIT_SPT_SEPRATE)->GetWindowText(strSep);
|
|
// if (strSep.IsEmpty())
|
|
// {
|
|
// AfxMessageBox(_T("Interval Coffient can't be empty"));
|
|
// return;
|
|
// }
|
|
//
|
|
// m_fSptSeprate = atof(strSep);
|
|
// }
|
|
|
|
|
|
int iChIndex = (int)VAL_ZERO;
|
|
int iChCount = (int)VAL_ZERO;
|
|
int iRecIndex = (int)VAL_ZERO;
|
|
|
|
pThis->m_pOpCreateSptView->m_bIsDraw = FALSE;//pLbChNumber->GetCurSel()一直位0
|
|
|
|
POSITION pos = pThis->m_pNewScript->m_chaList.FindIndex(pLbChNumber->GetCurSel());//pLbChNumber是listbox控件保存了通道索引
|
|
CChannel* pChannel = (CChannel*)pThis->m_pNewScript->m_chaList.GetAt(pos);
|
|
|
|
if (NULL != pChannel)
|
|
{
|
|
pThis->GetDlgItem(IDC_GEN)->EnableWindow(FALSE);
|
|
pThis->GetDlgItem(IDOK)->EnableWindow();
|
|
|
|
// iEAmount = pCbEAmount->GetItemData(pCbEAmount->GetCurSel());
|
|
pThis->m_pOpCreateSptView->m_pNewChannel = pChannel;
|
|
pThis->m_pOpCreateSptView->m_iEAmount = pThis->m_pNewScript->m_iEAmount;
|
|
|
|
// m_pOpCreateSptInfoView->m_pNewChannel = pChannel;
|
|
pThis->m_pOpCreateSptRecListView->m_pNewChannel = pChannel;
|
|
|
|
dwMedHandle = pThis->m_handleProcessor.GenerateHandle(iAR, PZ_STYLE_MED_DEF);
|
|
//对装置类型的处理
|
|
pChannel->m_pMedium = pThis->m_pMedLinkList->Find(dwMedHandle);
|
|
pThis->m_pChannel = pChannel;
|
|
|
|
CMedium* pMedium = NULL;
|
|
pMedium = pChannel->m_pMedium;
|
|
|
|
pChannel->ClearSptRecList();
|
|
if (NULL != pMedium)
|
|
{
|
|
switch (iAR)
|
|
{
|
|
case AR_CROSS_HOLE_TYPE:
|
|
{
|
|
pMedium->SetParamVal(&pThis->m_fSptSeprate);
|
|
}
|
|
break;
|
|
case AR_SCHLUMBERGER:
|
|
{
|
|
int iMNInfo[3];
|
|
iMNInfo[0] = pThis->m_cmbMNCtrl.GetCurSel();
|
|
iMNInfo[1] = iMNSpace;
|
|
iMNInfo[2] = iIsolationLayers;
|
|
pMedium->SetParamVal(iMNInfo);
|
|
}
|
|
break;
|
|
case AR_BIPOLE_HOLE_SPT:
|
|
{
|
|
pMedium->SetParamVal(&iSurfaceElectCnt);
|
|
}
|
|
break;
|
|
case AR_DOUBLE_SIZE_3P:
|
|
{
|
|
pMedium->SetParamVal(&iSepInterval);
|
|
}
|
|
break;
|
|
case AR_DIP_DIP:
|
|
{
|
|
pMedium->SetParamVal(&fInterval);
|
|
pThis->m_fDipoleSep = fInterval;
|
|
}
|
|
break;
|
|
case AR_POLE_DIPOLE_AMN:
|
|
case AR_DIPOLE_POLE_MNB:
|
|
{
|
|
int iParam[2];
|
|
iParam[0] = iMaxDipoleA;
|
|
iParam[1] = iMaxSepN;
|
|
pMedium->SetParamVal(iParam);
|
|
}
|
|
break;
|
|
case AR_STRONG_GRADIENT:
|
|
{
|
|
pMedium->SetParamVal(&bStrongGradientSwitch);
|
|
}
|
|
break;
|
|
case AR_S3P_MEDIUM:
|
|
{
|
|
int iParam[3];
|
|
iParam[0] = iStartElectID;
|
|
iParam[1] = iMinN;
|
|
iParam[2] = iMaxN;
|
|
pMedium->SetParamVal(iParam);
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
bool bRes = pMedium->GenerateSptRecElecVal(pThis->m_pNewScript->m_iEAmount, &(pChannel->m_iMaxLevel), &(pChannel->m_iPtAmount), &(pChannel->m_sptRecArray));
|
|
if (AR_CUSTOM_2D_TYPE == iAR && (bRes == false))
|
|
{
|
|
pThis->GetDlgItem(IDC_GEN)->EnableWindow(TRUE);
|
|
pThis->GetDlgItem(IDOK)->EnableWindow(FALSE);
|
|
return -1;
|
|
}
|
|
if ((iAR >0 && iAR < 4) || 11 == iAR || /*39 == iAR || 40 == iAR ||*/ EN_MULTI_CHANNEL != theApp.m_ucIsMultiChannel)
|
|
pMedium->ReSortPoint(&(pChannel->m_sptRecArray), pThis->m_cmbArRunMethod.GetCurSel());
|
|
else
|
|
{
|
|
//多通道脚本排序,A相同的一起测试
|
|
pMedium->SortMulChannelSpt(&(pChannel->m_sptRecArray));
|
|
}
|
|
/////////////////////////added by lsq 20161101////////////////////////////////
|
|
//添加产生通用脚本信息
|
|
|
|
if (false == pMedium->GeneralUniSptInfo(pChannel->m_iMaxLevel, &(pChannel->m_sptRecArray)))
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("获取通用脚本信息错误."));
|
|
else
|
|
MessageBoxEx(NULL, _T("Get universal script information error."), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
CSptRecord* pSptRecord = NULL;
|
|
pThis->m_pOpCreateSptRecListView->GetListCtrl().DeleteAllItems();
|
|
while (iRecIndex < pChannel->m_sptRecArray.GetSize())
|
|
{
|
|
DoEvent(pThis->m_hWnd);
|
|
|
|
pThis->m_pOpCreateSptRecListView->GetListCtrl().InsertItem(iRecIndex, _T(""));
|
|
|
|
pSptRecord = (CSptRecord*)(pChannel->m_sptRecArray.GetAt(iRecIndex));
|
|
|
|
if (NULL != pSptRecord)
|
|
{
|
|
pThis->InsertSptRecToRecListView(pSptRecord);
|
|
}
|
|
|
|
iRecIndex++;
|
|
|
|
DoEvent(pThis->m_hWnd);
|
|
}
|
|
//只需要对HeaderCtrl进行调整,则整个列表的数据也会跟着调整
|
|
pThis->AdjustRecListColumnIndex(iAR);
|
|
//调整完成之后,需要进行进行重绘才行
|
|
pThis->m_pOpCreateSptRecListView->Invalidate();
|
|
//
|
|
}
|
|
|
|
// m_edEU.EnableWindow(FALSE);
|
|
pThis->GetDlgItem(IDC_SPT_EAMOUNT)->EnableWindow(FALSE);
|
|
pCbAR->EnableWindow(FALSE);
|
|
//add layer info
|
|
pThis->m_iStartLayer = 1;
|
|
pThis->m_iEndLayer = pChannel->m_iMaxLevel;
|
|
pThis->m_strStartLayer.Format(_T("%d"), pThis->m_iStartLayer);
|
|
pThis->m_strEndLayer.Format(_T("%d"), pThis->m_iEndLayer);
|
|
//pThis->UpdateData(FALSE);
|
|
pThis->SendMessage(WM_UPDATEFIELDS, FALSE);
|
|
|
|
pThis->ShowLayerFilterInfo(TRUE);
|
|
pThis->m_cmbArRunMethod.EnableWindow(FALSE);
|
|
|
|
}
|
|
|
|
POSITION posCh = NULL;
|
|
iChIndex = (int)VAL_ZERO;
|
|
iChCount = pThis->m_pNewScript->m_chaList.GetCount();
|
|
|
|
while (iChIndex < iChCount)
|
|
{
|
|
posCh = pThis->m_pNewScript->m_chaList.FindIndex(iChIndex);
|
|
pChannel = (CChannel*)pThis->m_pNewScript->m_chaList.GetAt(posCh);
|
|
// bIsFin = bIsFin && (pChannel->m_sptRecArray.GetSize() > (int)VAL_ZERO);
|
|
iChIndex++;
|
|
}
|
|
/*
|
|
if (TRUE == bIsFin)
|
|
{
|
|
this->GetDlgItem(IDC_GEN)->EnableWindow(FALSE);
|
|
this->GetDlgItem(IDOK)->EnableWindow();
|
|
}
|
|
else
|
|
{
|
|
this->GetDlgItem(IDC_GEN)->EnableWindow();
|
|
this->GetDlgItem(IDOK)->EnableWindow(FALSE);
|
|
}
|
|
*/
|
|
//如果是跨孔或者是边缘梯度的话,则不画脚本的剖面图
|
|
if (AR_CUSTOM_2D_TYPE == iAR || AR_CROSS_HOLE_TYPE == iAR || AR_EDGE_GARDIENT == iAR || AR_BIPOLE_HOLE_SPT == iAR || AR_DOUBLE_SIZE_3P == iAR || AR_STRONG_GRADIENT == iAR || AR_S3P_MEDIUM == iAR)
|
|
{
|
|
pThis->m_pOpCreateSptView->m_bIsDraw = FALSE;
|
|
}
|
|
else
|
|
pThis->m_pOpCreateSptView->m_bIsDraw = TRUE;
|
|
|
|
pThis->m_pOpCreateSptView->m_iMul = 2;
|
|
|
|
pThis->m_pOpCreateSptView->Invalidate(FALSE);
|
|
pThis->m_pOpCreateSptView->SetFocus();
|
|
|
|
// pThis->m_pOpCreateSptInfoView->m_bIsDraw = TRUE;
|
|
// pThis->m_pOpCreateSptInfoView->Invalidate(TRUE);
|
|
}
|
|
|
|
BOOL COpCreateSptDlg::DestroyWindow()
|
|
{
|
|
// TODO: Add your specialized code here and/or call the base class
|
|
return CDialog::DestroyWindow();
|
|
}
|
|
|
|
|
|
|
|
void COpCreateSptDlg::OnSize(UINT nType, int cx, int cy)
|
|
{
|
|
CDialog::OnSize(nType, cx, cy);
|
|
|
|
// TODO: Add your message handler code here
|
|
if (NULL != m_pOpCreateSptFrame)
|
|
{
|
|
CRect rcStaticWnd,rect;
|
|
CWnd* pStaticWnd = GetDlgItem(IDC_STATIC_2D_SPT_BASIC_INFO);
|
|
if (pStaticWnd != NULL)
|
|
{
|
|
pStaticWnd->GetClientRect(&rcStaticWnd);
|
|
}
|
|
|
|
CRect rcClient;
|
|
GetClientRect(&rcClient);
|
|
CWnd *pStatic = GetDlgItem(IDC_STATIC_FRAME);
|
|
if (pStatic != NULL)
|
|
{
|
|
rcClient.top = rcStaticWnd.bottom + 5;
|
|
rcClient.left += 10;
|
|
rcClient.right -= 10;
|
|
rcClient.bottom -= 20;
|
|
pStatic->MoveWindow(&rcClient);
|
|
}
|
|
m_pOpCreateSptFrame->MoveWindow(&rcClient);
|
|
m_pOpCreateSptFrame->ShowWindow(SW_SHOW);
|
|
// m_stSptInfo.GetClientRect(&rect);
|
|
|
|
//m_pOpCreateSptFrame->MoveWindow(&recDlg);
|
|
//m_pOpCreateSptFrame->ShowWindow(SW_SHOW);
|
|
}
|
|
// UPDATE_EASYSIZE;
|
|
|
|
}
|
|
|
|
BOOL COpCreateSptDlg::PreTranslateMessage(MSG* pMsg)
|
|
{
|
|
// TODO: Add your specialized code here and/or call the base class
|
|
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE)
|
|
{
|
|
return TRUE;
|
|
}
|
|
return CDialog::PreTranslateMessage(pMsg);
|
|
}
|
|
|
|
//DEL void COpCreateSptDlg::SelctAllSptData()
|
|
//DEL {
|
|
//DEL
|
|
//DEL }
|
|
|
|
void COpCreateSptDlg::ShowLayerFilterInfo(BOOL bShow)
|
|
{
|
|
GetDlgItem(IDC_EDIT_START_LAYER)->EnableWindow(bShow);
|
|
GetDlgItem(IDC_EDIT_END_LAYER)->EnableWindow(bShow);
|
|
GetDlgItem(IDC_BUTTON_LAYER_FILTER)->EnableWindow(bShow);
|
|
}
|
|
|
|
void COpCreateSptDlg::OnButtonLayerFilter()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
if (NULL == m_pChannel)
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("获取通道信息失败!"));
|
|
else
|
|
MessageBoxEx(NULL, _T("Get channel info failed!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return;
|
|
}
|
|
if (!UpdateData(TRUE))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (!bIsInteger(m_strStartLayer))
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("开始层数值须为正数."));
|
|
else
|
|
MessageBoxEx(NULL, _T("Please input an integer on start layer!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return;
|
|
}
|
|
|
|
if (!bIsInteger(m_strEndLayer))
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("结束层数值须为正数."));
|
|
else
|
|
MessageBoxEx(NULL, _T("Please input an integer on end layer!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return;
|
|
}
|
|
m_iStartLayer = atoi(m_strStartLayer);
|
|
m_iEndLayer = atoi(m_strEndLayer);
|
|
if (m_iStartLayer < 1 || m_iEndLayer < 1)
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("层数值错误."));
|
|
else
|
|
MessageBoxEx(NULL, _T("Layer Information error!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return;
|
|
}
|
|
|
|
if (m_iStartLayer > m_iEndLayer)
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("层数乱序."));
|
|
else
|
|
MessageBoxEx(NULL, _T("The layer is disorder!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return;
|
|
}
|
|
|
|
if (m_iEndLayer > m_pChannel->m_iMaxLevel)
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("层数超过最大值."));
|
|
else
|
|
MessageBoxEx(NULL, _T("The layer overflow!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return;
|
|
}
|
|
CSptRecord* pSptRec = NULL;
|
|
for (int i = 0; i < m_pChannel->m_sptRecArray.GetSize(); i++)
|
|
{
|
|
pSptRec = (CSptRecord*)(m_pChannel->m_sptRecArray.GetAt(i));
|
|
//如果满足层数条件,则将该点的状态设置为已选择
|
|
if ((pSptRec->m_iLevel >= m_iStartLayer) && (pSptRec->m_iLevel <= m_iEndLayer))
|
|
{
|
|
pSptRec->m_bIsSel = TRUE;
|
|
pSptRec->m_colorREF = RGB(0, 255, 0);
|
|
}
|
|
else
|
|
{
|
|
pSptRec->m_bIsSel = FALSE;
|
|
pSptRec->m_colorREF = RGB(150, 255, 255);
|
|
}
|
|
if (!SetSptRctItemStatus(pSptRec))
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
m_pOpCreateSptView->Invalidate(FALSE);
|
|
m_pOpCreateSptView->SetFocus();
|
|
|
|
|
|
}
|
|
|
|
bool COpCreateSptDlg::SetSptRctItemStatus(CSptRecord* pSpt)
|
|
{
|
|
if (NULL == pSpt)
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("在SetSptRctItemStatus中,pSpt不能为空"));
|
|
else
|
|
MessageBoxEx(NULL, _T("pSpt can't be null in SetSptRctItemStatus!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return false;
|
|
}
|
|
LVFINDINFO info;
|
|
info.flags = LVFI_PARTIAL | LVFI_PARAM;
|
|
info.lParam = (long)pSpt;
|
|
int iIndex = m_pOpCreateSptRecListView->GetListCtrl().FindItem(&info);
|
|
if (iIndex != (int)VAL_MINUS_ONE)
|
|
{
|
|
m_pOpCreateSptRecListView->GetListCtrl().SetCheck(iIndex, pSpt->m_bIsSel);
|
|
if (pSpt->m_bIsSel)
|
|
{
|
|
m_pOpCreateSptRecListView->GetListCtrl().SetHotItem(iIndex);
|
|
m_pOpCreateSptRecListView->GetListCtrl().EnsureVisible(iIndex, TRUE);
|
|
m_pOpCreateSptRecListView->GetListCtrl().SetItemState(iIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("RectList中没有SptRecord"));
|
|
else
|
|
MessageBoxEx(NULL, _T("There is not SptRecord in RectList!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return false;
|
|
|
|
}
|
|
|
|
void COpCreateSptDlg::AdjustRecListColumnIndex(int iAR)
|
|
{
|
|
m_vtListOrder.clear();
|
|
switch (iAR)
|
|
{
|
|
case 1:
|
|
case 11:
|
|
case 4:
|
|
case 5:
|
|
case 6:
|
|
case AR_WENNER_SCH_BASIC:
|
|
case 39:
|
|
case 41://温钠-alpha,斯伦贝谢,温斯,二级和三极装置都为A\M\N\B
|
|
m_vtListOrder.push_back(1);
|
|
m_vtListOrder.push_back(3);
|
|
m_vtListOrder.push_back(4);
|
|
m_vtListOrder.push_back(2);
|
|
break;
|
|
case 2:
|
|
case 9://wenner-beta和偶极-偶极为B\A\M\N
|
|
m_vtListOrder.push_back(2);
|
|
m_vtListOrder.push_back(1);
|
|
m_vtListOrder.push_back(3);
|
|
m_vtListOrder.push_back(4);
|
|
break;
|
|
case 3: // Wennerγ装置为A\M\B\N
|
|
m_vtListOrder.push_back(1);
|
|
m_vtListOrder.push_back(3);
|
|
m_vtListOrder.push_back(2);
|
|
m_vtListOrder.push_back(4);
|
|
break;
|
|
case 42://井地井装置为B\N\A\M
|
|
m_vtListOrder.push_back(2);
|
|
m_vtListOrder.push_back(4);
|
|
m_vtListOrder.push_back(1);
|
|
m_vtListOrder.push_back(3);
|
|
break;
|
|
default:
|
|
m_vtListOrder.push_back(1);
|
|
m_vtListOrder.push_back(2);
|
|
m_vtListOrder.push_back(3);
|
|
m_vtListOrder.push_back(4);
|
|
break;
|
|
}
|
|
|
|
m_pOpCreateSptRecListView->ChangeListHeaderOrder(m_vtListOrder);
|
|
|
|
|
|
|
|
}
|
|
|
|
void COpCreateSptDlg::InitUIByLanguage(int iLanguage)
|
|
{
|
|
if (LANG_ZHCN == iLanguage)
|
|
{
|
|
SetWindowText(_T("2D脚本"));
|
|
GetDlgItem(IDC_STATIC_2D_SPT_BASIC_INFO)->SetWindowText(_T("基本信息"));
|
|
GetDlgItem(IDC_STATIC_2D_SPT_NAME)->SetWindowText(_T("*脚本名称"));
|
|
GetDlgItem(IDC_STATIC_2D_SPT_DATE)->SetWindowText(_T("日期"));
|
|
GetDlgItem(IDC_STATIC_2D_SPT_OPERATOR)->SetWindowText(_T("操作员"));
|
|
GetDlgItem(IDC_STATIC_2D_SPT_REMARK)->SetWindowText(_T("备注"));
|
|
GetDlgItem(IDC_STATIC_SPT_SEPRATE)->SetWindowText(_T(" *间隔系数"));
|
|
GetDlgItem(IDC_STATIC_MN_CTRL)->SetWindowText(_T("*MN间距控制:"));
|
|
GetDlgItem(IDC_STATIC_MN_SPACE)->SetWindowText(_T("*MN间距数:"));
|
|
|
|
GetDlgItem(IDC_STATIC_2D_SPT_CHANNEL)->SetWindowText(_T("通道"));
|
|
GetDlgItem(IDC_STATIC_2D_SPT_ELEC_NUMBER)->SetWindowText(_T("电极数"));
|
|
GetDlgItem(IDC_STATIC_2D_SPT_ARRAY)->SetWindowText(_T("排列"));
|
|
GetDlgItem(IDC_STATIC_2D_SPT_MOVE_PT)->SetWindowText(_T("跑极方式"));
|
|
GetDlgItem(IDC_STATIC_2D_SPT_CHANNEL_NUM)->SetWindowText(_T("通道"));
|
|
GetDlgItem(IDC_STATIC_2D_SPT_CHANNEL_INDEX)->SetWindowText(_T("通道序号"));
|
|
|
|
GetDlgItem(IDC_STATIC_LAYER_FILTERINFO)->SetWindowText(_T("选择层数"));
|
|
GetDlgItem(IDC_STATIC_LAYER_SHOW)->SetWindowText(_T("层数"));
|
|
GetDlgItem(IDC_BUTTON_LAYER_FILTER)->SetWindowText(_T("过滤"));
|
|
|
|
GetDlgItem(IDC_GEN)->SetWindowText(_T("创建"));
|
|
GetDlgItem(IDOK)->SetWindowText(_T("保存"));
|
|
GetDlgItem(IDCANCEL)->SetWindowText(_T("取消"));
|
|
|
|
}
|
|
}
|
|
|
|
void COpCreateSptDlg::OnSelchangeComboMnCtrl()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
if (0 == m_cmbMNCtrl.GetCurSel())
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
GetDlgItem(IDC_STATIC_MN_SPACE)->SetWindowTextA(_T("*MN间距数:"));
|
|
else
|
|
GetDlgItem(IDC_STATIC_MN_SPACE)->SetWindowTextA(_T("*MN Space:"));
|
|
GetDlgItem(IDC_EDIT_SPT_SEPRATE)->SetWindowText("1");
|
|
}
|
|
else
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
GetDlgItem(IDC_STATIC_MN_SPACE)->SetWindowTextA(_T("隔离层数"));
|
|
else
|
|
GetDlgItem(IDC_STATIC_MN_SPACE)->SetWindowTextA(_T("Isolation layers"));
|
|
GetDlgItem(IDC_EDIT_SPT_SEPRATE)->SetWindowText("6");
|
|
}
|
|
}
|