// CSaveConfigDlg.cpp : 实现文件 // #include "stdafx.h" #include "CSaveConfigDlg.h" #include "CTwainUI.h" #include // 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("提示")); } } }