uv-twain/huagao/CSaveConfigDlg.cpp

100 lines
2.4 KiB
C++

// CSaveConfigDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "CSaveConfigDlg.h"
#include "CTwainUI.h"
#include <io.h>
#include "GscanJsonConfig.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)
{
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;
}
void CSaveConfigDlg::OnBnClickedOk()
{
CTwainUI* m_Parent=(CTwainUI*)GetParent();
CONFIGPARAMS citem={0};
m_Parent->UpDateScanParam(&citem);
CString m_sName;
GetDlgItemText(IDC_EDITSAVENAME,m_sName);
TCHAR szIniFile[MAX_PATH] = { 0 };
INT length=m_sName.GetLength();
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());
}
//citem.Caption = (CW2A)m_sName;
_tcscat(szIniFile,m_sName+_TEXT(".json"));
std::string s_savePath = TCHAR2STRING2(szIniFile);
//citem.SavePath=s_savePath;
GscanJsonConfig cfg;
GScanCap caps = { 0 };
m_Parent->GetGScanCap(caps);
caps.SavePath = s_savePath;
caps.Caption = (CW2A)m_sName;
cfg.SaveGscanCapConfig(caps,s_savePath);
m_Parent->UpdateListConfig();
CDialog::OnOK();
}
else
{
if (length==0)
{
MessageBox(_TEXT("请输入保存项名称"),_TEXT("提示"));
}
else
{
MessageBox(_TEXT("最多只允许输入50个字符,请重新输入"),_TEXT("提示"));
}
}
}