📄 optionsdlg.cpp
字号:
// OptionsDlg1.cpp : implementation file
//
#include "stdafx.h"
#include "SubsetPAL.h"
#include "OptionsDlg.h"
#include "SubsetPALDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define INI_FILE "c:\\options.ini"
/////////////////////////////////////////////////////////////////////////////
// COptionsDlg dialog
COptionsDlg::COptionsDlg(CWnd* pParent /*=NULL*/)
: CDialog(COptionsDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(COptionsDlg)
m_bSubsetDecades = FALSE;
m_bSubsetMonths = FALSE;
m_sOutputPath = _T("");
m_sOutputPath = _T("");
m_sTempFilePath = _T("");
//}}AFX_DATA_INIT
}
void COptionsDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(COptionsDlg)
DDX_Check(pDX, IDC_CHECK_DECADES, m_bSubsetDecades);
DDX_Check(pDX, IDC_CHECK_MONTHS, m_bSubsetMonths);
DDX_Text(pDX, IDC_OUTPUTPATH, m_sOutputPath);
DDX_Text(pDX, IDC_TEMPPATH, m_sTempFilePath);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(COptionsDlg, CDialog)
//{{AFX_MSG_MAP(COptionsDlg)
ON_BN_CLICKED(IDC_OUTPUTFILEPATH, OnOutputfilepath)
ON_BN_CLICKED(IDC_TEMPFILEPATH, OnTempfilepath)
ON_BN_CLICKED(IDC_RANGE, OnRange)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// COptionsDlg message handlers
void COptionsDlg::OnOutputfilepath()
{
m_sOutputPath = SelectFolder();
UpdateData(FALSE);
}
BOOL COptionsDlg::OnInitDialog()
{
CDialog::OnInitDialog();
LoadLastOptions();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void COptionsDlg::OnOK()
{
UpdateData();
CButton* theradio = (CButton*) GetDlgItem(IDC_RADIO_ASCII);
UINT checked1 = theradio->GetCheck();
theradio = (CButton*) GetDlgItem(IDC_RADIO_ARCINFO);
UINT checked2 = theradio->GetCheck();
theradio = (CButton*) GetDlgItem(IDC_RADIO_ERDASIMAGINE);
UINT checked3 = theradio->GetCheck();
theradio = (CButton*) GetDlgItem(IDC_RADIO_ENVISTANDARD);
UINT checked4 = theradio->GetCheck();
if (!m_bSubsetDecades && !m_bSubsetMonths)
{
AfxMessageBox("请选择需要Subset的数据类型!", MB_OK);
return;
}
if (!checked1 && !checked2 && !checked3 && !checked4)
{
AfxMessageBox("请选择输出文件类型!", MB_OK);
return;
}
if (m_sOutputPath == _T(""))
{
AfxMessageBox("请选择输出文件位置!", MB_OK);
return;
}
if (checked1) m_iOutputFormat = ASCII_TEXT;
if (checked2) m_iOutputFormat = ARCINFO_GRID;
if (checked3) m_iOutputFormat = ERDAS_IMG;
if (checked4) m_iOutputFormat = ENVI_STANDARD;
SaveLastOptions();
CDialog::OnOK();
}
void COptionsDlg::SaveLastOptions()
{
CStdioFile file;
CFileException fe;
if (file.Open(INI_FILE, CFile::modeWrite | CFile::modeCreate, &fe))
{
CString temp;
//记录是否subset月合成数据
if (m_bSubsetMonths) temp = "TRUE";
else temp = "FALSE";
temp += " % Is month data subsetted\n";
file.WriteString(temp);
//记录是否subset十天合成数据
if (m_bSubsetDecades) temp = "TRUE";
else temp = "FALSE";
temp += " % Is decades data subsetted\n";
file.WriteString(temp);
//记录输出的数据文件格式
switch (m_iOutputFormat)
{
case ASCII_TEXT:
temp = "ASCII_TEXT"; break;
case ARCINFO_GRID:
temp = "ARCINFO_GRID"; break;
case ERDAS_IMG:
temp = "ERDAS_IMG"; break;
case ENVI_STANDARD:
temp = "ENVI_STANDARD"; break;
default:
break;
}
temp += " % Output file types\n";
file.WriteString(temp);
//记录输出的文件位置
file.WriteString(m_sOutputPath+"\n");
//记录临时文件的存放位置
file.WriteString(m_sTempFilePath+"\n");
file.Close();
}
}
void COptionsDlg::LoadLastOptions()
{
CStdioFile file;
CFileException fe;
if (file.Open(INI_FILE, CFile::modeRead, &fe))
{
CString temp;
file.ReadString(temp);
if (temp.Left(temp.Find(" ")) == "TRUE")
m_bSubsetMonths = TRUE;
else
m_bSubsetMonths = FALSE;
file.ReadString(temp);
if (temp.Left(temp.Find(" ")) == "TRUE")
m_bSubsetDecades = TRUE;
else
m_bSubsetDecades = FALSE;
file.ReadString(temp);
temp = temp.Left(temp.Find(" "));
CButton* theradio;
if (temp == "ASCII_TEXT")
{
theradio = (CButton*) GetDlgItem(IDC_RADIO_ASCII);
theradio->SetCheck(1);
}
else if (temp == "ARCINFO_GRID")
{
theradio = (CButton*) GetDlgItem(IDC_RADIO_ARCINFO);
theradio->SetCheck(1);
}
else if (temp == "ERDAS_IMG")
{
theradio = (CButton*) GetDlgItem(IDC_RADIO_ERDASIMAGINE);
theradio->SetCheck(1);
}
else if (temp == "ENVI_STANDARD")
{
theradio = (CButton*) GetDlgItem(IDC_RADIO_ENVISTANDARD);
theradio->SetCheck(1);
}
file.ReadString(temp);
m_sOutputPath = temp;
file.ReadString(temp);
m_sTempFilePath = temp;
file.Close();
UpdateData(FALSE);
}
}
void COptionsDlg::OnTempfilepath()
{
m_sTempFilePath = SelectFolder();
UpdateData(FALSE);
}
void COptionsDlg::OnRange()
{
CSubsetPALDlg dlg;
dlg.DoModal();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -