修改twainui cpp文件格式为gb2312

This commit is contained in:
masayume_ht 2023-04-28 14:55:16 +08:00
parent b415496652
commit 64bacd48e2
1 changed files with 80 additions and 80 deletions

View File

@ -1,4 +1,4 @@
// CTwainUI.cpp: 实现文件 // CTwainUI.cpp: 实现文件
// //
#include "stdafx.h" #include "stdafx.h"
#include "CTwainUI.h" #include "CTwainUI.h"
@ -13,7 +13,7 @@
#include <list> #include <list>
#include "Device/filetools.h" #include "Device/filetools.h"
#include "GscanJsonConfig.h" #include "GscanJsonConfig.h"
// CTwainUI 对话框 // CTwainUI 对话框
IMPLEMENT_DYNAMIC(CTwainUI, CDialogEx) IMPLEMENT_DYNAMIC(CTwainUI, CDialogEx)
@ -70,13 +70,13 @@ BOOL CTwainUI::OnInitDialog()
m_pageBasic->Create(IDD_PAGEBASIC, this); m_pageBasic->Create(IDD_PAGEBASIC, this);
m_pageBasic->discardblank_percent = settings->discardblank_percent; m_pageBasic->discardblank_percent = settings->discardblank_percent;
m_pageBasic->SetScannerInfo(m_hardwareVersion, m_serialnum, m_macadder); m_pageBasic->SetScannerInfo(m_hardwareVersion, m_serialnum, m_macadder);
m_tabCtrl->AddSSLPage(_T("基本"), nPageID++, m_pageBasic.get()); m_tabCtrl->AddSSLPage(_T("基本"), nPageID++, m_pageBasic.get());
m_pageBrightness->Create(IDD_PAGEBRIGHTNESS, this); m_pageBrightness->Create(IDD_PAGEBRIGHTNESS, this);
m_tabCtrl->AddSSLPage(_T("亮度"), nPageID++, m_pageBrightness.get()); m_tabCtrl->AddSSLPage(_T("亮度"), nPageID++, m_pageBrightness.get());
m_pageImageProc->Create(IDD_PAGEIMGPROC, this); m_pageImageProc->Create(IDD_PAGEIMGPROC, this);
m_tabCtrl->AddSSLPage(_T("图像处理"), nPageID++, m_pageImageProc.get()); m_tabCtrl->AddSSLPage(_T("图像处理"), nPageID++, m_pageImageProc.get());
m_pageFeedPaper->Create(IDD_PAGEFEEDPAPER, this); m_pageFeedPaper->Create(IDD_PAGEFEEDPAPER, this);
m_tabCtrl->AddSSLPage(_T("送纸"), nPageID++, m_pageFeedPaper.get()); m_tabCtrl->AddSSLPage(_T("送纸"), nPageID++, m_pageFeedPaper.get());
CString title(m_confirmtitle.c_str()); CString title(m_confirmtitle.c_str());
this->GetDlgItem(IDC_CONFIRM)->SetWindowText(title); this->GetDlgItem(IDC_CONFIRM)->SetWindowText(title);
#ifdef G200 #ifdef G200
@ -199,7 +199,7 @@ END_MESSAGE_MAP()
void CTwainUI::OnBnClickedConfirm() void CTwainUI::OnBnClickedConfirm()
{ {
// TODO: 在此添加控件通知处理程序代码 // TODO: 在此添加控件通知处理程序代码
OnNMClickTab(nullptr, nullptr); OnNMClickTab(nullptr, nullptr);
CONFIGPARAMS cfg = { 0 }; CONFIGPARAMS cfg = { 0 };
UpDateScanParam(&cfg); UpDateScanParam(&cfg);
@ -209,7 +209,7 @@ void CTwainUI::OnBnClickedConfirm()
void CTwainUI::OnBnClickedBtndefault() void CTwainUI::OnBnClickedBtndefault()
{ {
// TODO: 在此添加控件通知处理程序代码 // TODO: 在此添加控件通知处理程序代码
GscanJsonConfig js; GscanJsonConfig js;
GScanCap cf = js.GetDefaultGscancapValue(); GScanCap cf = js.GetDefaultGscancapValue();
settings.reset(new GScanCap(cf)); settings.reset(new GScanCap(cf));
@ -220,22 +220,22 @@ void CTwainUI::OnBnClickedBtndefault()
void CTwainUI::OnBnClickedCancel() void CTwainUI::OnBnClickedCancel()
{ {
// TODO: 在此添加控件通知处理程序代码 // TODO: 在此添加控件通知处理程序代码
m_glue.m_cancel(); m_glue.m_cancel();
} }
void CTwainUI::OnBnClickedBtnhelp() void CTwainUI::OnBnClickedBtnhelp()
{ {
// TODO: 在此添加控件通知处理程序代码 // TODO: 在此添加控件通知处理程序代码
this->SetWindowPos(&wndNoTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); this->SetWindowPos(&wndNoTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
TCHAR chmPath[MAX_PATH] = { 0 }; TCHAR chmPath[MAX_PATH] = { 0 };
SHGetSpecialFolderPath(NULL, chmPath, CSIDL_WINDOWS, TRUE); SHGetSpecialFolderPath(NULL, chmPath, CSIDL_WINDOWS, TRUE);
_tcscat(chmPath, CHM_DEFAULT_PATH); _tcscat(chmPath, CHM_DEFAULT_PATH);
int ret = (int)ShellExecute(NULL, _T("Open"), chmPath, NULL, NULL, SW_SHOWMAXIMIZED); int ret = (int)ShellExecute(NULL, _T("Open"), chmPath, NULL, NULL, SW_SHOWMAXIMIZED);
if (ret < 32) if (ret < 32)
MessageBox(ret == ERROR_FILE_NOT_FOUND ? _T("未找到帮助文档!") : _T("打开帮助文档异常!"), MessageBox(ret == ERROR_FILE_NOT_FOUND ? _T("未找到帮助文档!") : _T("打开帮助文档异常!"),
_T("提示"), MB_OK | MB_ICONINFORMATION); _T("提示"), MB_OK | MB_ICONINFORMATION);
this->SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); this->SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
} }
@ -243,14 +243,14 @@ void CTwainUI::OnBnClickedBtnhelp()
void CTwainUI::UpdateUI() void CTwainUI::UpdateUI()
{ {
//!< basic page //!< basic page
m_pageBasic->m_cmBoxColorMode->SetCurSel(settings->automaticcolor ? 3 : get_map_key_by_value(colorModes, settings->pixtype));//!< 颜色模式 m_pageBasic->m_cmBoxColorMode->SetCurSel(settings->automaticcolor ? 3 : get_map_key_by_value(colorModes, settings->pixtype));//!< 颜色模式
//m_pageBasic->m_cmBoxResultion->SetCurSel(get_map_key_by_value(resolutions, settings->resolution_dst));//!< 分辨率 //m_pageBasic->m_cmBoxResultion->SetCurSel(get_map_key_by_value(resolutions, settings->resolution_dst));//!< 分辨率
//m_pageBasic->m_Slider_Dpi.SetPos(settings->resolution_dst); //m_pageBasic->m_Slider_Dpi.SetPos(settings->resolution_dst);
m_pageBasic->m_Edit_Dpi.SetValue((int)settings->resolution_dst); m_pageBasic->m_Edit_Dpi.SetValue((int)settings->resolution_dst);
m_pageBasic->m_cmBoxDuplex->SetCurSel(getCmbDuplexIndex());//!< 单双面 m_pageBasic->m_cmBoxDuplex->SetCurSel(getCmbDuplexIndex());//!< 单双面
m_pageBasic->m_cmBoxSS->SetCurSel(getPaparSizeIndex(settings->papertype, settings->paperAlign)); //!< 纸张类型 m_pageBasic->m_cmBoxSS->SetCurSel(getPaparSizeIndex(settings->papertype, settings->paperAlign)); //!< 纸张类型
m_pageBasic->m_enableSizeCheck = settings->en_sizecheck == 1 ? TRUE : FALSE;//!< 尺寸检测 m_pageBasic->m_enableSizeCheck = settings->en_sizecheck == 1 ? TRUE : FALSE;//!< 尺寸检测
m_pageBasic->m_bswitchfrontback = settings->is_switchfrontback ? TRUE : FALSE; //!< 交换正反面 m_pageBasic->m_bswitchfrontback = settings->is_switchfrontback ? TRUE : FALSE; //!< 交换正反面
((CButton*)m_pageBasic->GetDlgItem(IDC_RDQUALITYPRIORITY))->SetCheck(settings->is_high_imagequality); ((CButton*)m_pageBasic->GetDlgItem(IDC_RDQUALITYPRIORITY))->SetCheck(settings->is_high_imagequality);
((CButton*)m_pageBasic->GetDlgItem(IDC_RDSPEEDPRIORITY))->SetCheck(!settings->is_high_imagequality); ((CButton*)m_pageBasic->GetDlgItem(IDC_RDSPEEDPRIORITY))->SetCheck(!settings->is_high_imagequality);
((CButton*)m_pageBasic->GetDlgItem(IDC_CKSPLIT))->SetCheck(settings->is_split); ((CButton*)m_pageBasic->GetDlgItem(IDC_CKSPLIT))->SetCheck(settings->is_split);
@ -266,11 +266,11 @@ void CTwainUI::UpdateUI()
m_pageBasic->GetDlgItem(IDC_BTNDISCARDSETTING)->EnableWindow(false); m_pageBasic->GetDlgItem(IDC_BTNDISCARDSETTING)->EnableWindow(false);
//!< Page Breghtness //!< Page Breghtness
m_pageBrightness->m_cbAutoContrast = settings->is_autocontrast == TRUE ? TRUE : FALSE; //!< 自动亮度对比度 m_pageBrightness->m_cbAutoContrast = settings->is_autocontrast == TRUE ? TRUE : FALSE; //!< 自动亮度对比度
int brt = GetMappingBrightnessValue(settings->brightness); int brt = GetMappingBrightnessValue(settings->brightness);
m_pageBrightness->m_Edit_Brightness.SetValue(brt); //!< 亮度 m_pageBrightness->m_Edit_Brightness.SetValue(brt); //!< 亮度
int crt = GetContrastLevel(settings->contrast); int crt = GetContrastLevel(settings->contrast);
m_pageBrightness->m_Edit_Contrast.SetValue(crt);//!<对比度 m_pageBrightness->m_Edit_Contrast.SetValue(crt);//!<对比度
m_pageBrightness->m_Edit_Gamma.SetValue(settings->gamma); //!< gamma m_pageBrightness->m_Edit_Gamma.SetValue(settings->gamma); //!< gamma
m_pageBrightness->UpdateData(FALSE); m_pageBrightness->UpdateData(FALSE);
@ -283,8 +283,8 @@ void CTwainUI::UpdateUI()
m_pageBasic->discardblank_percent = settings->discardblank_percent; m_pageBasic->discardblank_percent = settings->discardblank_percent;
((CButton*)m_pageImageProc->GetDlgItem(IDC_CKCROPMODEL))->SetCheck(settings->normalCrop); ((CButton*)m_pageImageProc->GetDlgItem(IDC_CKCROPMODEL))->SetCheck(settings->normalCrop);
m_pageImageProc->m_ckbFillBlack = settings->fillbackground == TRUE ? TRUE : FALSE;//填充黑框 m_pageImageProc->m_ckbFillBlack = settings->fillbackground == TRUE ? TRUE : FALSE;//填充黑框
m_pageImageProc->m_ckbAutoDeskrew = settings->autodescrew ? TRUE : FALSE;//自动纠偏 m_pageImageProc->m_ckbAutoDeskrew = settings->autodescrew ? TRUE : FALSE;//自动纠偏
UpdateFilterCmbx(); UpdateFilterCmbx();
if (settings->fillbackground || settings->autodescrew || settings->is_autocrop) { if (settings->fillbackground || settings->autodescrew || settings->is_autocrop) {
m_pageImageProc->GetDlgItem(IDC_ADVANCEDSET)->EnableWindow(TRUE); m_pageImageProc->GetDlgItem(IDC_ADVANCEDSET)->EnableWindow(TRUE);
@ -294,8 +294,8 @@ void CTwainUI::UpdateUI()
} }
m_pageImageProc->m_cmBoxSharpen.SetCurSel(settings->sharpen); m_pageImageProc->m_cmBoxSharpen.SetCurSel(settings->sharpen);
//UpdateSharpenCmbx(); //UpdateSharpenCmbx();
m_pageImageProc->m_ckbRemoveHole = settings->fillhole.is_fillhole == TRUE ? TRUE : FALSE;//除穿孔可用性 m_pageImageProc->m_ckbRemoveHole = settings->fillhole.is_fillhole == TRUE ? TRUE : FALSE;//除穿孔可用性
m_pageImageProc->m_edit_hole.SetValue(settings->fillhole.fillholeratio / 100.0);//穿孔搜索范围比例系数 m_pageImageProc->m_edit_hole.SetValue(settings->fillhole.fillholeratio / 100.0);//穿孔搜索范围比例系数
m_pageImageProc->m_edit_hole.EnableWindow(settings->fillhole.is_fillhole == TRUE ? TRUE : FALSE); m_pageImageProc->m_edit_hole.EnableWindow(settings->fillhole.is_fillhole == TRUE ? TRUE : FALSE);
m_pageImageProc->GetDlgItem(IDC_BTNHOLE)->EnableWindow(settings->fillhole.is_fillhole == TRUE ? TRUE : FALSE); m_pageImageProc->GetDlgItem(IDC_BTNHOLE)->EnableWindow(settings->fillhole.is_fillhole == TRUE ? TRUE : FALSE);
m_pageImageProc->m_fillhole_up = settings->fillholeratio_up; m_pageImageProc->m_fillhole_up = settings->fillholeratio_up;
@ -315,10 +315,10 @@ void CTwainUI::UpdateUI()
m_pageImageProc->m_slider_faderange.EnableWindow(settings->fadeback); m_pageImageProc->m_slider_faderange.EnableWindow(settings->fadeback);
m_pageImageProc->m_edit_faderange.EnableWindow(settings->fadeback); m_pageImageProc->m_edit_faderange.EnableWindow(settings->fadeback);
m_pageImageProc->m_ckbDetachNoise = settings->detachnoise.is_detachnoise == TRUE ? TRUE : FALSE;//黑白降噪是否启用 m_pageImageProc->m_ckbDetachNoise = settings->detachnoise.is_detachnoise == TRUE ? TRUE : FALSE;//黑白降噪是否启用
((CButton*)m_pageImageProc->GetDlgItem(IDC_CHECKDETACHNOISE))->SetCheck(m_pageImageProc->m_ckbDetachNoise); ((CButton*)m_pageImageProc->GetDlgItem(IDC_CHECKDETACHNOISE))->SetCheck(m_pageImageProc->m_ckbDetachNoise);
((CButton*)m_pageImageProc->GetDlgItem(IDC_CHECKDETACHNOISE))->EnableWindow(settings->pixtype != 2); ((CButton*)m_pageImageProc->GetDlgItem(IDC_CHECKDETACHNOISE))->EnableWindow(settings->pixtype != 2);
((CButton*)m_pageImageProc->GetDlgItem(IDC_CHMULTIPUT))->SetCheck(settings->pixtype != 2 ? FALSE : settings->en_multi_output); // 多流输出 ((CButton*)m_pageImageProc->GetDlgItem(IDC_CHMULTIPUT))->SetCheck(settings->pixtype != 2 ? FALSE : settings->en_multi_output); // 多流输出
m_pageImageProc->GetDlgItem(IDC_CHMULTIPUT)->EnableWindow(settings->pixtype != 2); m_pageImageProc->GetDlgItem(IDC_CHMULTIPUT)->EnableWindow(settings->pixtype != 2);
((CComboBox*)m_pageImageProc->GetDlgItem(IDC_CMBMULTIOUT))->SetCurSel(settings->pixtype != 2 ? 0 : (settings->en_multi_output ? (settings->multioutput < 0 ? 0 : settings->multioutput) : 0)); ((CComboBox*)m_pageImageProc->GetDlgItem(IDC_CMBMULTIOUT))->SetCurSel(settings->pixtype != 2 ? 0 : (settings->en_multi_output ? (settings->multioutput < 0 ? 0 : settings->multioutput) : 0));
@ -327,21 +327,21 @@ void CTwainUI::UpdateUI()
m_pageImageProc->m_slider_detachnoise.EnableWindow(settings->detachnoise.is_detachnoise == TRUE ? TRUE : FALSE); m_pageImageProc->m_slider_detachnoise.EnableWindow(settings->detachnoise.is_detachnoise == TRUE ? TRUE : FALSE);
m_pageImageProc->m_edit_detachnoise.EnableWindow(settings->detachnoise.is_detachnoise == TRUE ? TRUE : FALSE); m_pageImageProc->m_edit_detachnoise.EnableWindow(settings->detachnoise.is_detachnoise == TRUE ? TRUE : FALSE);
if (settings->pixtype == 2) if (settings->pixtype == 2)
m_pageImageProc->m_ckbMultioutput = settings->multi_output_red == TRUE ? TRUE : FALSE;//多流除红 m_pageImageProc->m_ckbMultioutput = settings->multi_output_red == TRUE ? TRUE : FALSE;//多流除红
else else
m_pageImageProc->m_ckbMultioutput = FALSE;//多流除红 m_pageImageProc->m_ckbMultioutput = FALSE;//多流除红
m_pageImageProc->m_ckbHSVCorrect = settings->hsvcorrect == TRUE ? TRUE : FALSE;//答题卡除红 m_pageImageProc->m_ckbHSVCorrect = settings->hsvcorrect == TRUE ? TRUE : FALSE;//答题卡除红
m_pageImageProc->m_ckbHSVDetechNoise = settings->hsvFilter == TRUE ? TRUE : FALSE; m_pageImageProc->m_ckbHSVDetechNoise = settings->hsvFilter == TRUE ? TRUE : FALSE;
m_pageImageProc->GetDlgItem(IDC_CKMULTIOUTPUT)->EnableWindow(settings->pixtype == 2);//彩色可用 m_pageImageProc->GetDlgItem(IDC_CKMULTIOUTPUT)->EnableWindow(settings->pixtype == 2);//彩色可用
((CButton*)m_pageImageProc->GetDlgItem(IDC_CKMULTIOUTPUT))->SetCheck(settings->pixtype == 2); ((CButton*)m_pageImageProc->GetDlgItem(IDC_CKMULTIOUTPUT))->SetCheck(settings->pixtype == 2);
m_pageImageProc->UpdateData(FALSE); m_pageImageProc->UpdateData(FALSE);
m_pageFeedPaper->dogear.SetCheck(settings->is_dogeardetection); m_pageFeedPaper->dogear.SetCheck(settings->is_dogeardetection);
//!< Page feed paper //!< Page feed paper
if (settings->is_duplex || settings->is_autodiscradblank_normal || settings->is_autodiscradblank_vince) if (settings->is_duplex || settings->is_autodiscradblank_normal || settings->is_autodiscradblank_vince)
{ {
m_pageFeedPaper->m_cbRotation = settings->is_backrotate180 == TRUE ? TRUE : FALSE;//背面旋转180 m_pageFeedPaper->m_cbRotation = settings->is_backrotate180 == TRUE ? TRUE : FALSE;//背面旋转180
m_pageFeedPaper->GetDlgItem(IDC_CKBACKROTATION)->EnableWindow(settings->is_autotext ? FALSE : TRUE); m_pageFeedPaper->GetDlgItem(IDC_CKBACKROTATION)->EnableWindow(settings->is_autotext ? FALSE : TRUE);
} }
else else
@ -349,27 +349,27 @@ void CTwainUI::UpdateUI()
m_pageFeedPaper->GetDlgItem(IDC_CKBACKROTATION)->EnableWindow(FALSE); m_pageFeedPaper->GetDlgItem(IDC_CKBACKROTATION)->EnableWindow(FALSE);
m_pageFeedPaper->m_cbRotation = FALSE; m_pageFeedPaper->m_cbRotation = FALSE;
} }
m_pageFeedPaper->m_cbStaple = settings->hardwarecaps.en_stapledetect == TRUE ? TRUE : FALSE;//装订检测 m_pageFeedPaper->m_cbStaple = settings->hardwarecaps.en_stapledetect == TRUE ? TRUE : FALSE;//装订检测
m_pageFeedPaper->m_cbDoublePaper = settings->hardwarecaps.en_doublefeed == TRUE ? TRUE : FALSE;//双张检测 m_pageFeedPaper->m_cbDoublePaper = settings->hardwarecaps.en_doublefeed == TRUE ? TRUE : FALSE;//双张检测
m_pageFeedPaper->m_cbSkew = settings->hardwarecaps.en_skrewdetect == TRUE ? TRUE : FALSE;//歪斜检测 m_pageFeedPaper->m_cbSkew = settings->hardwarecaps.en_skrewdetect == TRUE ? TRUE : FALSE;//歪斜检测
((CButton*)m_pageFeedPaper->GetDlgItem(IDC_CKAUTOPAPER))->SetCheck(settings->hardwarecaps.is_autopaper); ((CButton*)m_pageFeedPaper->GetDlgItem(IDC_CKAUTOPAPER))->SetCheck(settings->hardwarecaps.is_autopaper);
auto tmp_init_autopaper_timeout = {10,15,30,60}; auto tmp_init_autopaper_timeout = {10,15,30,60};
auto tmp_autopaper_cmbindex = std::distance(tmp_init_autopaper_timeout.begin(), auto tmp_autopaper_cmbindex = std::distance(tmp_init_autopaper_timeout.begin(),
std::find(tmp_init_autopaper_timeout.begin(), tmp_init_autopaper_timeout.end(), settings->autopaper_timeout)); std::find(tmp_init_autopaper_timeout.begin(), tmp_init_autopaper_timeout.end(), settings->autopaper_timeout));
((CComboBox*)m_pageFeedPaper->GetDlgItem(IDC_CMBAUTOPAPER))->SetCurSel(tmp_autopaper_cmbindex == tmp_init_autopaper_timeout.size() ? 0 : tmp_autopaper_cmbindex); ((CComboBox*)m_pageFeedPaper->GetDlgItem(IDC_CMBAUTOPAPER))->SetCurSel(tmp_autopaper_cmbindex == tmp_init_autopaper_timeout.size() ? 0 : tmp_autopaper_cmbindex);
m_pageFeedPaper->m_cmBoxOrentation.SetCurSel(settings->is_autotext?4:getRotateCmbIndex(settings->imageRotateDegree));//旋转方向; m_pageFeedPaper->m_cmBoxOrentation.SetCurSel(settings->is_autotext?4:getRotateCmbIndex(settings->imageRotateDegree));//旋转方向;
m_pageFeedPaper->m_sldSkrewDetecttion.SetPos(m_pageFeedPaper->m_cbSkew?settings->hardwarecaps.skrewdetectlevel:3);//歪斜检测等级 m_pageFeedPaper->m_sldSkrewDetecttion.SetPos(m_pageFeedPaper->m_cbSkew?settings->hardwarecaps.skrewdetectlevel:3);//歪斜检测等级
m_pageFeedPaper->m_sldSkrewDetecttion.EnableWindow(m_pageFeedPaper->m_cbSkew); m_pageFeedPaper->m_sldSkrewDetecttion.EnableWindow(m_pageFeedPaper->m_cbSkew);
m_pageFeedPaper->m_slider_dogear.SetPos(settings->dogeardistance); m_pageFeedPaper->m_slider_dogear.SetPos(settings->dogeardistance);
m_pageFeedPaper->m_slider_dogear.EnableWindow(((CButton*)m_pageFeedPaper->GetDlgItem(IDC_DogEarDetection))->GetCheck()); m_pageFeedPaper->m_slider_dogear.EnableWindow(((CButton*)m_pageFeedPaper->GetDlgItem(IDC_DogEarDetection))->GetCheck());
((CComboBox*)m_pageFeedPaper->GetDlgItem(IDC_CBLOWPOWERMODE))->SetCurSel(settings->hardwarecaps.lowpowermode); ((CComboBox*)m_pageFeedPaper->GetDlgItem(IDC_CBLOWPOWERMODE))->SetCurSel(settings->hardwarecaps.lowpowermode);
if (settings->scannum == 65535 || settings->hardwarecaps.is_autopaper)//连续扫描 if (settings->scannum == 65535 || settings->hardwarecaps.is_autopaper)//连续扫描
{ {
m_pageFeedPaper->m_radioGroupScanMode = 0; m_pageFeedPaper->m_radioGroupScanMode = 0;
m_pageFeedPaper->GetDlgItem(IDC_EDSCANNUM)->SetWindowText(_T("1")); m_pageFeedPaper->GetDlgItem(IDC_EDSCANNUM)->SetWindowText(_T("1"));
m_pageFeedPaper->GetDlgItem(IDC_EDSCANNUM)->EnableWindow(FALSE); m_pageFeedPaper->GetDlgItem(IDC_EDSCANNUM)->EnableWindow(FALSE);
} }
else//指定数目 else//指定数目
{ {
m_pageFeedPaper->GetDlgItem(IDC_EDSCANNUM)->EnableWindow(TRUE); m_pageFeedPaper->GetDlgItem(IDC_EDSCANNUM)->EnableWindow(TRUE);
m_pageFeedPaper->m_radioGroupScanMode = 1; m_pageFeedPaper->m_radioGroupScanMode = 1;
@ -540,59 +540,59 @@ static T* GetCtrl(const CWnd* wnd, int nID)
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
/*从UI获取参数*/ /*从UI获取参数*/
void CTwainUI::UpDateScanParam(PCONFIGPARAMS configItem, bool updateDs) void CTwainUI::UpDateScanParam(PCONFIGPARAMS configItem, bool updateDs)
{ {
//!< Page Basic //!< Page Basic
m_pageBasic->UpdateData(); m_pageBasic->UpdateData();
configItem->Pixtype = m_pageBasic->m_cmBoxColorMode->GetCurSel() == 3 ? 0 : m_pageBasic->m_cmBoxColorMode->GetCurSel();//!< 颜色模式 index configItem->Pixtype = m_pageBasic->m_cmBoxColorMode->GetCurSel() == 3 ? 0 : m_pageBasic->m_cmBoxColorMode->GetCurSel();//!< 颜色模式 index
configItem->EnSizeCheck = m_pageBasic->m_enableSizeCheck; configItem->EnSizeCheck = m_pageBasic->m_enableSizeCheck;
//configItem->Resolution = m_pageBasic->m_cmBoxResultion->GetCurSel();//!< 分辨率 index //configItem->Resolution = m_pageBasic->m_cmBoxResultion->GetCurSel();//!< 分辨率 index
configItem->Resolution = m_pageBasic->m_Slider_Dpi.m_iPosition; configItem->Resolution = m_pageBasic->m_Slider_Dpi.m_iPosition;
configItem->Duplex = m_pageBasic->m_cmBoxDuplex->GetCurSel();//!< 单双面 configItem->Duplex = m_pageBasic->m_cmBoxDuplex->GetCurSel();//!< 单双面
configItem->PaperSize = m_pageBasic->m_cmBoxSS->GetCurSel();//!< 纸张类型 index configItem->PaperSize = m_pageBasic->m_cmBoxSS->GetCurSel();//!< 纸张类型 index
configItem->EnSwitchFrontBack = m_pageBasic->m_bswitchfrontback == TRUE ? true : false; configItem->EnSwitchFrontBack = m_pageBasic->m_bswitchfrontback == TRUE ? true : false;
settings->is_high_imagequality = ((CButton*)m_pageBasic->GetDlgItem(IDC_RDQUALITYPRIORITY))->GetCheck(); settings->is_high_imagequality = ((CButton*)m_pageBasic->GetDlgItem(IDC_RDQUALITYPRIORITY))->GetCheck();
configItem->LowPowerMode = ((CComboBox*)m_pageFeedPaper->GetDlgItem(IDC_CBLOWPOWERMODE))->GetCurSel();//!<休眠模式 configItem->LowPowerMode = ((CComboBox*)m_pageFeedPaper->GetDlgItem(IDC_CBLOWPOWERMODE))->GetCurSel();//!<休眠模式
PaperStatus page = paperStatusMap[configItem->PaperSize]; PaperStatus page = paperStatusMap[configItem->PaperSize];
configItem->EnAutoCrop = page.Paper == TwSS::None; configItem->EnAutoCrop = page.Paper == TwSS::None;
configItem->EnDiscardBlank = configItem->Duplex == 2;//自动跳骨空白页通用 configItem->EnDiscardBlank = configItem->Duplex == 2;//自动跳骨空白页通用
configItem->EnDiscardBlankVince = configItem->Duplex == 3;//自动跳骨空白页发票 configItem->EnDiscardBlankVince = configItem->Duplex == 3;//自动跳骨空白页发票
configItem->EnFlod = configItem->Duplex == 4; configItem->EnFlod = configItem->Duplex == 4;
#ifdef UV #ifdef UV
configItem->EnUVModel = m_pageBasic->m_bUV; configItem->EnUVModel = m_pageBasic->m_bUV;
#endif #endif
//configItem->DBlank_AreaNum = m_pageBasic->AreaNum;//!< 分区数 //configItem->DBlank_AreaNum = m_pageBasic->AreaNum;//!< 分区数
//configItem->DBlank_DevnMax = m_pageBasic->DevnMax;//!< 跳过阈值 //configItem->DBlank_DevnMax = m_pageBasic->DevnMax;//!< 跳过阈值
//!< Page Breghtness //!< Page Breghtness
m_pageBrightness->UpdateData(); m_pageBrightness->UpdateData();
configItem->EnAutoContrast = m_pageBrightness->m_cbAutoContrast; //!< 自动亮度对比度 configItem->EnAutoContrast = m_pageBrightness->m_cbAutoContrast; //!< 自动亮度对比度
configItem->Brightness = (WndCtrl2i(&(m_pageBrightness->m_Edit_Brightness)) - 128)*(2000.0 / 254.0); //!< 亮度 configItem->Brightness = (WndCtrl2i(&(m_pageBrightness->m_Edit_Brightness)) - 128)*(2000.0 / 254.0); //!< 亮度
int crtvalue = WndCtrl2i(&(m_pageBrightness->m_Edit_Contrast)) - 4; int crtvalue = WndCtrl2i(&(m_pageBrightness->m_Edit_Contrast)) - 4;
configItem->Contrast = GetContrast(crtvalue);//!<对比度 configItem->Contrast = GetContrast(crtvalue);//!<对比度
configItem->Gamma = WndCtrl2f(&(m_pageBrightness->m_Edit_Gamma)); //!< gamma configItem->Gamma = WndCtrl2f(&(m_pageBrightness->m_Edit_Gamma)); //!< gamma
//!< Page Proc //!< Page Proc
m_pageImageProc->UpdateData(); m_pageImageProc->UpdateData();
configItem->EnFillBlack = m_pageImageProc->m_ckbFillBlack;//填充黑框 configItem->EnFillBlack = m_pageImageProc->m_ckbFillBlack;//填充黑框
configItem->EnAutoDescrew = m_pageImageProc->m_ckbAutoDeskrew;//自动纠偏 configItem->EnAutoDescrew = m_pageImageProc->m_ckbAutoDeskrew;//自动纠偏
configItem->Filter = m_pageImageProc->m_cmBoxFilter.GetCurSel();//除色 configItem->Filter = m_pageImageProc->m_cmBoxFilter.GetCurSel();//除色
configItem->Sharpen = m_pageImageProc->m_cmBoxSharpen.GetCurSel();//锐化 configItem->Sharpen = m_pageImageProc->m_cmBoxSharpen.GetCurSel();//锐化
configItem->EnOutHole = m_pageImageProc->m_ckbRemoveHole;//除穿孔可用性 configItem->EnOutHole = m_pageImageProc->m_ckbRemoveHole;//除穿孔可用性
configItem->OutHoleRatio = WndCtrl2f(&(m_pageImageProc->m_edit_hole)) * 100;//穿孔搜索范围比例系数 configItem->OutHoleRatio = WndCtrl2f(&(m_pageImageProc->m_edit_hole)) * 100;//穿孔搜索范围比例系数
configItem->EnMultiOutPutR = m_pageImageProc->m_ckbMultioutput;//多流除红 configItem->EnMultiOutPutR = m_pageImageProc->m_ckbMultioutput;//多流除红
configItem->EnHsvCorrect = m_pageImageProc->m_ckbHSVCorrect;//答题卡除红 configItem->EnHsvCorrect = m_pageImageProc->m_ckbHSVCorrect;//答题卡除红
configItem->EnHsvFilterDetechNoise = m_pageImageProc->m_ckbHSVDetechNoise; configItem->EnHsvFilterDetechNoise = m_pageImageProc->m_ckbHSVDetechNoise;
//!< Page feed paper //!< Page feed paper
m_pageFeedPaper->UpdateData(); m_pageFeedPaper->UpdateData();
configItem->EnBackRotate180 = m_pageFeedPaper->m_cbRotation;//背面旋转180 configItem->EnBackRotate180 = m_pageFeedPaper->m_cbRotation;//背面旋转180
configItem->EnBindingDetect = m_pageFeedPaper->m_cbStaple;//装订检测 configItem->EnBindingDetect = m_pageFeedPaper->m_cbStaple;//装订检测
configItem->EnUltrasonicDetect = m_pageFeedPaper->m_cbDoublePaper;//双张检测 configItem->EnUltrasonicDetect = m_pageFeedPaper->m_cbDoublePaper;//双张检测
configItem->EnScrewDetect = m_pageFeedPaper->m_cbSkew;//歪斜检测 configItem->EnScrewDetect = m_pageFeedPaper->m_cbSkew;//歪斜检测
configItem->Orentation = m_pageFeedPaper->m_cmBoxOrentation.GetCurSel();//旋转方向 configItem->Orentation = m_pageFeedPaper->m_cmBoxOrentation.GetCurSel();//旋转方向
int count = WndCtrl2i(&(m_pageFeedPaper->m_editNum)); int count = WndCtrl2i(&(m_pageFeedPaper->m_editNum));
if (count == 0) if (count == 0)
@ -601,7 +601,7 @@ void CTwainUI::UpDateScanParam(PCONFIGPARAMS configItem, bool updateDs)
count = 1; count = 1;
} }
configItem->ScanCount = (m_pageFeedPaper->m_radioGroupScanMode == 0) ? -1 : count; configItem->ScanCount = (m_pageFeedPaper->m_radioGroupScanMode == 0) ? -1 : count;
configItem->ScrewDetectLevel = m_pageFeedPaper->m_sldSkrewDetecttion.GetPos();//歪斜检测等级 configItem->ScrewDetectLevel = m_pageFeedPaper->m_sldSkrewDetecttion.GetPos();//歪斜检测等级
if (!updateDs) if (!updateDs)
return; return;
@ -637,7 +637,7 @@ void CTwainUI::UpDateScanParam(PCONFIGPARAMS configItem, bool updateDs)
#ifdef UV #ifdef UV
settings->hardwarecaps.en_uv = configItem->EnUVModel; settings->hardwarecaps.en_uv = configItem->EnUVModel;
#endif #endif
//填充黑框 //填充黑框
settings->fillbackground = configItem->EnFillBlack; settings->fillbackground = configItem->EnFillBlack;
settings->autodescrew = configItem->EnAutoDescrew; settings->autodescrew = configItem->EnAutoDescrew;
if (configItem->Orentation <= 3) { if (configItem->Orentation <= 3) {
@ -667,7 +667,7 @@ void CTwainUI::UpDateScanParam(PCONFIGPARAMS configItem, bool updateDs)
if (configItem->ScanCount == -1) if (configItem->ScanCount == -1)
settings->scannum = configItem->ScanCount; settings->scannum = configItem->ScanCount;
else { else {
if (configItem->Duplex == 0)//单面 if (configItem->Duplex == 0)//单面
settings->scannum = configItem->ScanCount; settings->scannum = configItem->ScanCount;
else { else {
settings->scannum = configItem->ScanCount * 2; settings->scannum = configItem->ScanCount * 2;
@ -680,7 +680,7 @@ void CTwainUI::UpDateScanParam(PCONFIGPARAMS configItem, bool updateDs)
settings->enhance_color = (byte)EnchaceColor::Enhance_None; settings->enhance_color = (byte)EnchaceColor::Enhance_None;
} }
else { else {
settings->filter = 3;//不除色 settings->filter = 3;//不除色
settings->enhance_color = (byte)filterMaps[configItem->Filter]; settings->enhance_color = (byte)filterMaps[configItem->Filter];
} }
} }
@ -838,9 +838,9 @@ void CTwainUI::EnableID_OKorID_Cancel(bool enable)
void CTwainUI::OnBnClickedBtnbackupconfig() void CTwainUI::OnBnClickedBtnbackupconfig()
{ {
// TODO: 在此添加控件通知处理程序代码 // TODO: 在此添加控件通知处理程序代码
CString csFilters = _T("Json file(*.json)\0"); CString csFilters = _T("Json file(*.json)\0");
CFileDialog cfd(FALSE, _T("json"), _T("另存为")); CFileDialog cfd(FALSE, _T("json"), _T("另存为"));
cfd.m_ofn.lpstrTitle = _T(""); cfd.m_ofn.lpstrTitle = _T("");
cfd.m_ofn.lpstrFilter = csFilters; cfd.m_ofn.lpstrFilter = csFilters;
this->SetWindowPos(&wndNoTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); this->SetWindowPos(&wndNoTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
@ -869,7 +869,7 @@ void CTwainUI::OnBnClickedBtnbackupconfig()
void CTwainUI::OnBnClickedBtnsaveconfig() void CTwainUI::OnBnClickedBtnsaveconfig()
{ {
// TODO: 在此添加控件通知处理程序代码 // TODO: 在此添加控件通知处理程序代码
CSaveConfigDlg sfd(this); CSaveConfigDlg sfd(this);
sfd.DoModal(); sfd.DoModal();
} }
@ -877,8 +877,8 @@ void CTwainUI::OnBnClickedBtnsaveconfig()
void CTwainUI::OnBnClickedBtndeletconfig() void CTwainUI::OnBnClickedBtndeletconfig()
{ {
// TODO: 在此添加控件通知处理程序代码 // TODO: 在此添加控件通知处理程序代码
if (MessageBox(TEXT("确认要删除此用户首选项配置吗?"), TEXT("用户首选项"), MB_YESNO | MB_ICONQUESTION) == IDYES) if (MessageBox(TEXT("确认要删除此用户首选项配置吗?"), TEXT("用户首选项"), MB_YESNO | MB_ICONQUESTION) == IDYES)
{ {
int cursel = -1; int cursel = -1;
cursel = ((CListBox*)(GetDlgItem(IDC_LSTCONFIG)))->GetCurSel(); cursel = ((CListBox*)(GetDlgItem(IDC_LSTCONFIG)))->GetCurSel();
@ -895,9 +895,9 @@ void CTwainUI::OnBnClickedBtndeletconfig()
void CTwainUI::OnBnClickedBtnrecoveryconfig() void CTwainUI::OnBnClickedBtnrecoveryconfig()
{ {
// TODO: 在此添加控件通知处理程序代码 // TODO: 在此添加控件通知处理程序代码
this->SetWindowPos(&wndNoTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); this->SetWindowPos(&wndNoTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
if (MessageBox(TEXT("如果恢复,当前所有已保存配置将丢失。是否继续?"), TEXT("恢复"), MB_YESNO | MB_ICONQUESTION) == IDYES) if (MessageBox(TEXT("如果恢复,当前所有已保存配置将丢失。是否继续?"), TEXT("恢复"), MB_YESNO | MB_ICONQUESTION) == IDYES)
{ {
GscanJsonConfig js; GscanJsonConfig js;
CFileDialog ofd(TRUE, CFileDialog ofd(TRUE,
@ -931,7 +931,7 @@ void CTwainUI::OnBnClickedBtnrecoveryconfig()
void CTwainUI::OnLbnSelchangeLstconfig() void CTwainUI::OnLbnSelchangeLstconfig()
{ {
// TODO: 在此添加控件通知处理程序代码 // TODO: 在此添加控件通知处理程序代码
int index = -1; int index = -1;
index = ((CListBox*)(GetDlgItem(IDC_LSTCONFIG)))->GetCurSel(); index = ((CListBox*)(GetDlgItem(IDC_LSTCONFIG)))->GetCurSel();
if (index != -1) if (index != -1)
@ -951,14 +951,14 @@ void CTwainUI::OnLbnSelchangeLstconfig()
void CTwainUI::OnClose() void CTwainUI::OnClose()
{ {
// TODO: 在此添加消息处理程序代码和/或调用默认值 // TODO: 在此添加消息处理程序代码和/或调用默认值
m_glue.m_cancel(); m_glue.m_cancel();
} }
LRESULT CTwainUI::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) LRESULT CTwainUI::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{ {
// TODO: 在此添加专用代码和/或调用基类 // TODO: 在此添加专用代码和/或调用基类
return CDialogEx::WindowProc(message, wParam, lParam); return CDialogEx::WindowProc(message, wParam, lParam);
} }
@ -967,7 +967,7 @@ LRESULT CTwainUI::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
void CTwainUI::OnNMClickTab(NMHDR* pNMHDR, LRESULT* pResult) void CTwainUI::OnNMClickTab(NMHDR* pNMHDR, LRESULT* pResult)
{ {
// TODO: 在此添加控件通知处理程序代码 // TODO: 在此添加控件通知处理程序代码
//*pResult = 0; //*pResult = 0;
m_pageImageProc->ImageProcPageUpdate(m_pageBasic->m_cmBoxColorMode->GetCurSel(), m_pageBasic->m_cmBoxSS->GetCurSel(), m_pageBasic->m_cmBoxDuplex->GetCurSel(), m_pageImageProc->ImageProcPageUpdate(m_pageBasic->m_cmBoxColorMode->GetCurSel(), m_pageBasic->m_cmBoxSS->GetCurSel(), m_pageBasic->m_cmBoxDuplex->GetCurSel(),
(getcombox_ss(m_pageBasic->m_cmBoxSS->GetCurSel()) == TwSS::USStatement) || (getcombox_ss(m_pageBasic->m_cmBoxSS->GetCurSel()) == TwSS::None), (getcombox_ss(m_pageBasic->m_cmBoxSS->GetCurSel()) == TwSS::USStatement) || (getcombox_ss(m_pageBasic->m_cmBoxSS->GetCurSel()) == TwSS::None),