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

📄 optionsdlg.cpp

📁 提取NOAA PAL(Pathfinder AVHRR Land cover data)中的中国部分子集
💻 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 + -