twain3.0/huagao/CSaveConfigDlg.cpp

100 lines
2.3 KiB
C++

// CSaveConfigDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "CSaveConfigDlg.h"
#include "CTwainUI.h"
#include <io.h>
// CSaveConfigDlg 对话框
IMPLEMENT_DYNAMIC(CSaveConfigDlg, CDialog)
CSaveConfigDlg::CSaveConfigDlg(CWnd* pParent /*=NULL*/)
: CDialog(IDD_SAVECONFIG, pParent)
{
}
CSaveConfigDlg::~CSaveConfigDlg()
{
}
void CSaveConfigDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CSaveConfigDlg, CDialog)
ON_BN_CLICKED(IDOK, &CSaveConfigDlg::OnBnClickedOk)
END_MESSAGE_MAP()
// CSaveConfigDlg 消息处理程序
std::string TCHAR2STRING2(TCHAR* STR)
{
//!< nick
//int iLen = WideCharToMultiByte(CP_ACP, 0, STR, -1, NULL, 0, NULL, NULL);
//char* chRtn = new char[iLen * sizeof(char)];
//WideCharToMultiByte(CP_ACP, 0, STR, -1, chRtn, iLen, NULL, NULL);
//std::string str(chRtn);
//return str;
return "";
}
void CSaveConfigDlg::OnBnClickedOk()
{
CTwainUI* m_Parent=(CTwainUI*)GetParent();
CONFIGPARAMS citem={0};
m_Parent->UpDateScanParam(&citem,false);
CString m_sName;
GetDlgItemText(IDC_EDITSAVENAME,m_sName);
TCHAR szIniFile[MAX_PATH] = { 0 };
INT length=m_sName.GetLength();
//INT length=10;
if (length>0&&length<50)
{
char invalid_FileChars[8]={'/','\\',':','*',' ?','<', '>','|'};
for(short j=0;j<8;j++)
{
m_sName.Remove(invalid_FileChars[j]);
}
if (m_sName.IsEmpty())
{
MessageBox(_TEXT("请避免输入非法字符('/','\\',':','*',' ?','<', '>','|')!"),_TEXT("提示"),MB_OK|MB_ICONWARNING);
return;
}
SHGetSpecialFolderPath(NULL, szIniFile, CSIDL_LOCAL_APPDATA, TRUE);
_tcscat(szIniFile,HUAGAO_SCAN);
_tcscat(szIniFile, TWAIN_DATA_PATH);
_tcscat(szIniFile, _T("\\"));
std::string dirpath = TCHAR2STRING2(szIniFile);
bool is_exist = isFolderExist((char*)dirpath.c_str());
if (!is_exist) {
createDirectory((char*)dirpath.c_str());
}
//!< nick
citem.Caption = "";//(CW2A)m_sName;
_tcscat(szIniFile,m_sName+_TEXT(".json"));
std::string s_savePath = TCHAR2STRING2(szIniFile);
citem.SavePath=s_savePath;
JsonConfig cfg;
cfg.WriteToJson(&citem,s_savePath,true);
m_Parent->UpdateListConfig();
CDialog::OnOK();
}
else
{
if (length==0)
{
MessageBox(_TEXT("请输入保存项名称"),_TEXT("提示"));
}
else
{
MessageBox(_TEXT("最多只允许输入50个字符,请重新输入"),_TEXT("提示"));
}
}
}