// CBasicPage.cpp: 实现文件 // #include "stdafx.h" #include "CBasicPage.h" #include "afxdialogex.h" #include "resource.h" #include "CAboutDlg.h" #include "CTwainUI.h" #include "CDiscardBlankSetting.h" #include "CcardblankDlg.h" #include static std::vector color_Modes = { _T("24位彩色"), _T("256级灰度"), _T("黑白"), _T("颜色自动识别") }; #ifdef G200 static std::vector surportStyles = { _T("A3"),//pass _T("8开"), _T("A4"), _T("A4横向"), _T("16开"), _T("16开横向"), _T("A5"), _T("A5横向"), _T("A6"), _T("A6横向"), _T("B4"), _T("B5"), _T("B5横向"), _T("B6"), _T("B6横向"), _T("Letter"), _T("Letter横向"), _T("Double Letter"),//pass _T("LEGAL"), _T("匹配原始尺寸"), _T("最大扫描尺寸自动裁切"), _T("最大扫描尺寸"), _T("三联试卷"), }; #endif #ifdef G300 static std::vector surportStyles = { _T("A4"), _T("16开"), _T("A5"), _T("A6"), //_T("B4"), _T("B5"), _T("B6"), _T("Letter"), _T("LEGAL"), _T("匹配原始尺寸"), }; #endif #ifdef G400 static std::vector surportStyles = { _T("A3"),//pass _T("8开"), _T("A4"), _T("A4横向"), _T("16开"), _T("16开横向"), _T("A5"), _T("A5横向"), _T("A6"), _T("A6横向"), _T("B4"), _T("B5"), _T("B5横向"), _T("B6"), _T("B6横向"), _T("Letter"), _T("Letter横向"), _T("Double Letter"),//pass _T("LEGAL"), _T("匹配原始尺寸"), _T("最大扫描尺寸自动裁切"), _T("最大扫描尺寸"), _T("三联试卷"), }; #endif // G400 //static std::vector reslutions{ // _T("100"), // _T("150"), // _T("200"), // _T("240"), // _T("300"), //#ifndef LANXUM // //_T("600") //#endif // LANXUM //}; static std::vector duplexs { _T("单面"), _T("双面"), _T("跳过空白页(通用)"), _T("跳过空白页(发票纸)"), _T("对折") }; // CBasicPage 对话框 IMPLEMENT_DYNAMIC(CBasicPage, CTabPageSSL) CBasicPage::CBasicPage(std::function dataChange, CWnd* pParent /*=nullptr*/) : CTabPageSSL(IDD_PAGEBASIC, pParent) , m_dataChange(dataChange) , AreaNum(8) , DevnMax(200) , m_bswitchfrontback(FALSE) , discardblank_percent(10) { } CBasicPage::~CBasicPage() { } void CBasicPage::DoDataExchange(CDataExchange* pDX) { CTabPageSSL::DoDataExchange(pDX); DDX_Check(pDX, IDC_CKBSWITCHFRONTBACK, m_bswitchfrontback); DDX_Check(pDX, IDC_CKBSIZEDETECT, m_enableSizeCheck); DDX_Control(pDX, IDC_SLIDERDPI, m_Slider_Dpi); DDX_Control(pDX, IDC_EDITDPI, m_Edit_Dpi); DDX_Check(pDX, IDC_CKBENABLEUV, m_bUV); } BOOL CBasicPage::OnInitDialog() { CTabPageSSL::OnInitDialog(); m_cmBoxColorMode = (CComboBox*)GetDlgItem(IDC_CMBCOLORTYPE); m_cmBoxSS = (CComboBox*)GetDlgItem(IDC_CMBSS); m_cmBoxDuplex = (CComboBox*)GetDlgItem(IDC_CMBDUPLEX); m_Edit_Dpi.SetSlideLink(this, IDC_SLIDERDPI); m_Edit_Dpi.SetParams(100, 300, 10); m_Edit_Dpi.SetValue(200); for (const CString& colorMode : color_Modes) m_cmBoxColorMode->AddString(colorMode); for (int i = 0; i < surportStyles.size(); i++) m_cmBoxSS->InsertString(i, surportStyles[i]); for (int i = 0; i < duplexs.size(); i++) m_cmBoxDuplex->InsertString(i,duplexs[i]); m_cmBoxSS->SetCurSel(0); m_cmBoxColorMode->SetCurSel(0); m_cmBoxDuplex->SetCurSel(0); #ifndef UV GetDlgItem(IDC_CKBENABLEUV)->ShowWindow(FALSE); #endif return true; } BEGIN_MESSAGE_MAP(CBasicPage, CTabPageSSL) ON_BN_CLICKED(IDC_BTNABOUT, &CBasicPage::OnBnClickedBtnabout) ON_CBN_SELCHANGE(IDC_CMBCOLORTYPE, &CBasicPage::OnCbnSelchangeCmbcolortype) ON_CBN_SELCHANGE(IDC_CMBSS, &CBasicPage::OnCbnSelchangeCmbss) ON_CBN_SELCHANGE(IDC_CMBRESLUTION, &CBasicPage::OnCbnSelchangeCmbreslution) ON_CBN_SELCHANGE(IDC_CMBDUPLEX, &CBasicPage::OnCbnSelchangeCmbduplex) ON_BN_CLICKED(IDC_BTNDISCARDSETTING, &CBasicPage::OnClickedBtndiscardsetting) END_MESSAGE_MAP() // CBasicPage 消息处理程序 void CBasicPage::OnBnClickedBtnabout() { CAboutDlg dlg(m_hdVersion, m_serialNum,this); dlg.DoModal(); } void CBasicPage::OnCbnSelchangeCmbcolortype() { // TODO: 在此添加控件通知处理程序代码 updateCmbDuplex(TRUE); m_dataChange(); } void CBasicPage::OnCbnSelchangeCmbss() { // TODO: 在此添加控件通知处理程序代码 int sleIndex = m_cmBoxSS->GetCurSel(); if (sleIndex == -1) { sleIndex = 0; } updateCmbDuplex(TRUE); m_dataChange(); } void CBasicPage::OnCbnSelchangeCmbreslution() { // TODO: 在此添加控件通知处理程序代码 updateCmbDuplex(TRUE); } void CBasicPage::OnCbnSelchangeCmbduplex() { // TODO: 在此添加控件通知处理程序代码 int index = m_cmBoxDuplex->GetCurSel(); //if (index > 1) { //AreaNum = index == 2? 8 : 20 ; //DevnMax = index == 2 ? 200 : 300; m_dataChange(); //} if (m_cmBoxDuplex->GetCurSel() == 2 || m_cmBoxDuplex->GetCurSel() == 3) this->GetDlgItem(IDC_BTNDISCARDSETTING)->EnableWindow(true); else this->GetDlgItem(IDC_BTNDISCARDSETTING)->EnableWindow(false); updateCmbDuplex(TRUE); } //跳过空白页设置页面 void CBasicPage::OnClickedBtndiscardsetting() { // TODO: 在此添加控件通知处理程序代码 //JsonConfig jc; //CONFIGPARAMS params = jc.ReadDefaultConfig(); //CDiscardBlankSetting dbs(this, params.DBlank_AreaNum, params.DBlank_DevnMax); //int nRet = dbs.DoModal(); //if (nRet == IDOK) { // dbs.GetParams(AreaNum, DevnMax); //} CcardblankDlg settingdlg(discardblank_percent,this); settingdlg.DoModal(); discardblank_percent = settingdlg.discardblank_percent; } void CBasicPage::SetScannerInfo(std::string hdVersion, std::string serialNum) { m_hdVersion = hdVersion; m_serialNum = serialNum; } void CBasicPage::updateCmbDuplex(BOOL insert) { //m_cmBoxDuplex->GetCurSel(); int tmp_colorindex=m_cmBoxColorMode->GetCurSel(); int tmp_paperindex = m_cmBoxSS->GetCurSel(); int tmp_duplexindex = m_cmBoxDuplex->GetCurSel(); //int tmp_resindex = m_cmBoxResultion->GetCurSel(); int tmp_resindex = m_Slider_Dpi.m_iPosition; int totalcount = m_cmBoxDuplex->GetCount(); if (tmp_colorindex == 0 && tmp_paperindex > 19 && tmp_resindex >= 300) { if (m_cmBoxDuplex->GetCurSel() == 4) { m_cmBoxDuplex->SetCurSel(1); } m_cmBoxDuplex->DeleteString(4); //m_cmBoxDuplex->SetCurSel(1); } else { if (totalcount != 5) { m_cmBoxDuplex->InsertString(4, TEXT("对折")); } } #ifndef G300 if (tmp_paperindex == 19 || tmp_paperindex == 20 || tmp_paperindex == 21 || tmp_paperindex == 22 || tmp_paperindex == 1|| tmp_paperindex == 4|| tmp_paperindex == 5){ (((CButton*)GetDlgItem(IDC_CKBSIZEDETECT)))->SetCheck(false); GetDlgItem(IDC_CKBSIZEDETECT)->EnableWindow(false); } else{ GetDlgItem(IDC_CKBSIZEDETECT)->EnableWindow(true); } #else if (tmp_paperindex == 8|| tmp_paperindex == 1) { (((CButton*)GetDlgItem(IDC_CKBSIZEDETECT)))->SetCheck(false); GetDlgItem(IDC_CKBSIZEDETECT)->EnableWindow(false); } else { GetDlgItem(IDC_CKBSIZEDETECT)->EnableWindow(true); } #endif // G200 }