222 lines
6.2 KiB
C++
222 lines
6.2 KiB
C++
// SaveSpcFilePath.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "geomative.h"
|
|
#include "SaveSpcFilePath.h"
|
|
#include <imagehlp.h>
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CSaveSpcFilePath dialog
|
|
|
|
extern int g_iUILanguage;
|
|
CSaveSpcFilePath::CSaveSpcFilePath(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CSaveSpcFilePath::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CSaveSpcFilePath)
|
|
m_FilePath = _T("");
|
|
//}}AFX_DATA_INIT
|
|
m_iCurSel = -1;
|
|
m_ucResFlag = 0;
|
|
m_ProjectName = _T("");
|
|
m_ZoneName = _T("");
|
|
}
|
|
|
|
|
|
void CSaveSpcFilePath::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CSaveSpcFilePath)
|
|
DDX_Control(pDX, IDC_COMBO_MODEL, m_cmdSaveModel);
|
|
DDX_Text(pDX, IDC_EDIT_FILE_PATH, m_FilePath);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CSaveSpcFilePath, CDialog)
|
|
//{{AFX_MSG_MAP(CSaveSpcFilePath)
|
|
ON_BN_CLICKED(IDC_BUTTON_BROWSE, OnButtonBrowse)
|
|
ON_CBN_SELCHANGE(IDC_COMBO_MODEL, OnSelchangeComboModel)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CSaveSpcFilePath message handlers
|
|
|
|
BOOL CSaveSpcFilePath::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
// TODO: Add extra initialization here
|
|
bSig = TRUE;
|
|
m_cmdSaveModel.AddString(_T("bore-hole"));
|
|
m_cmdSaveModel.AddString(_T("common"));
|
|
//初始化控件内容
|
|
|
|
GetDlgItem(IDC_CHECK_DAT)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_CHECK_URF)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_CHECK_EXCEL)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_CHECK_TXT)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_CHECK_EXCEL)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_CHECK_TXT)->EnableWindow(SW_HIDE);
|
|
for (int n = 0; n < m_TypeArray.GetSize(); n++)
|
|
{
|
|
if (m_TypeArray.GetAt(n) == "Dat")
|
|
{
|
|
GetDlgItem(IDC_CHECK_DAT)->EnableWindow(TRUE);
|
|
((CButton*)(GetDlgItem(IDC_CHECK_DAT)))->SetCheck(BST_CHECKED);
|
|
continue;
|
|
}
|
|
if (m_TypeArray.GetAt(n) == "Excel")
|
|
{
|
|
GetDlgItem(IDC_CHECK_EXCEL)->EnableWindow(TRUE);
|
|
((CButton*)(GetDlgItem(IDC_CHECK_EXCEL)))->SetCheck(BST_UNCHECKED);
|
|
continue;
|
|
}
|
|
if (m_TypeArray.GetAt(n) == "Txt")
|
|
{
|
|
GetDlgItem(IDC_CHECK_TXT)->EnableWindow(TRUE);
|
|
((CButton*)(GetDlgItem(IDC_CHECK_TXT)))->SetCheck(BST_CHECKED);
|
|
}
|
|
if (m_TypeArray.GetAt(n) == "Urf")
|
|
{
|
|
GetDlgItem(IDC_CHECK_URF)->EnableWindow(TRUE);
|
|
((CButton*)(GetDlgItem(IDC_CHECK_URF)))->SetCheck(BST_CHECKED);
|
|
}
|
|
}
|
|
if (m_FilePath.IsEmpty())
|
|
{
|
|
// m_FilePath = m_CurrentPath + "\\" + _T("Data") + "\\" + m_ProjectName + "\\" + m_ZoneName + "\\";
|
|
m_FilePath = m_CurrentPath + "\\" + _T("Data") + "\\" + m_ProjectName + "\\";
|
|
}
|
|
m_cmdSaveModel.SetCurSel(1);
|
|
m_iCurSel = m_cmdSaveModel.GetCurSel();
|
|
UpdateData(FALSE);
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void CSaveSpcFilePath::OnButtonBrowse()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
CString szResult = _T("");
|
|
szResult = GetFilePath();
|
|
|
|
if (szResult != "null")
|
|
{
|
|
m_FilePath.Empty();
|
|
m_FilePath = szResult+_T("\\");
|
|
UpdateData(FALSE);
|
|
}
|
|
}
|
|
|
|
CString CSaveSpcFilePath::GetFilePath()
|
|
{
|
|
LPITEMIDLIST rootLoation;
|
|
BROWSEINFO bi;
|
|
TCHAR targetPath[ MAX_PATH ];
|
|
// static TCHAR targetPath2[ MAX_PATH ];
|
|
SHGetSpecialFolderLocation( NULL, CSIDL_DESKTOP, &rootLoation );
|
|
ZeroMemory( &bi, sizeof( bi ) );
|
|
bi.pidlRoot = rootLoation;
|
|
bi.lpszTitle = _T( "保存路径" );
|
|
|
|
LPITEMIDLIST targetLocation = SHBrowseForFolder( &bi );
|
|
|
|
if ( targetLocation != NULL )
|
|
{
|
|
SHGetPathFromIDList( targetLocation, targetPath );
|
|
CString szPath(targetPath);
|
|
|
|
bSig = TRUE;//表示使用自定义路径
|
|
return szPath;
|
|
}
|
|
else
|
|
{
|
|
return "null";
|
|
}
|
|
}
|
|
|
|
void CSaveSpcFilePath::OnOK()
|
|
{
|
|
// TODO: Add extra validation here
|
|
UpdateData(TRUE);
|
|
if (!MakeSureDirectoryPathExists(m_FilePath.GetBuffer(m_FilePath.GetLength())))
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("路径被占用,请关闭!"));
|
|
else
|
|
MessageBoxEx(NULL, _T("The Path is occupy, Please Close it"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return;
|
|
}
|
|
if (m_cmdSaveModel.GetCurSel() == -1)
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("请先选择文件类型"));
|
|
else
|
|
MessageBoxEx(NULL, _T("Please select file modele firstly."), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return;
|
|
}
|
|
m_ucResFlag = 0;
|
|
if (BST_CHECKED == ((CButton*)(GetDlgItem(IDC_CHECK_DAT)))->GetCheck())
|
|
{
|
|
m_ucResFlag = m_ucResFlag | 0x01;
|
|
}
|
|
|
|
if (BST_CHECKED == ((CButton*)(GetDlgItem(IDC_CHECK_EXCEL)))->GetCheck())
|
|
{
|
|
m_ucResFlag = m_ucResFlag | 0x02;
|
|
}
|
|
|
|
if (BST_CHECKED == ((CButton*)(GetDlgItem(IDC_CHECK_TXT)))->GetCheck())
|
|
{
|
|
m_ucResFlag = m_ucResFlag | 0x04;
|
|
}
|
|
|
|
if (BST_CHECKED == ((CButton*)(GetDlgItem(IDC_CHECK_URF)))->GetCheck())
|
|
{
|
|
m_ucResFlag = m_ucResFlag | 0x08;
|
|
}
|
|
if (0 == m_ucResFlag)
|
|
{
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
AfxMessageBox(_T("路请选择文件类型!"));
|
|
else
|
|
MessageBoxEx(NULL, _T("Please select file type!"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
|
|
return;
|
|
}
|
|
m_szFileName = m_FilePath + m_TaskName;
|
|
m_iCurSel = m_cmdSaveModel.GetCurSel();
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
void CSaveSpcFilePath::OnSelchangeComboModel()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
int iCurSel = m_cmdSaveModel.GetCurSel();
|
|
if (m_iCurSel == iCurSel)
|
|
{
|
|
return;
|
|
}
|
|
if ( 0 == m_cmdSaveModel.GetCurSel())
|
|
{
|
|
((CButton*)(GetDlgItem(IDC_CHECK_DAT)))->SetCheck(BST_CHECKED);
|
|
((CButton*)(GetDlgItem(IDC_CHECK_URF)))->SetCheck(BST_UNCHECKED);
|
|
((CButton*)(GetDlgItem(IDC_CHECK_TXT)))->SetCheck(BST_CHECKED);
|
|
(GetDlgItem(IDC_CHECK_URF))->EnableWindow(FALSE);
|
|
}
|
|
else if (1 == m_cmdSaveModel.GetCurSel())
|
|
{
|
|
((CButton*)(GetDlgItem(IDC_CHECK_DAT)))->SetCheck(BST_CHECKED);
|
|
((CButton*)(GetDlgItem(IDC_CHECK_URF)))->SetCheck(BST_CHECKED);
|
|
((CButton*)(GetDlgItem(IDC_CHECK_TXT)))->SetCheck(BST_CHECKED);
|
|
(GetDlgItem(IDC_CHECK_URF))->EnableWindow(TRUE);
|
|
}
|
|
|
|
}
|