// CBasicPage.cpp: 实现文件 // #include "stdafx.h" #include "CBasicPage.h" #include "afxdialogex.h" #include "resource.h" #include "CAboutDlg.h" #include "CTwainUI.h" #include "CDiscardBlankSetting.h" #include static std::vector color_Modes = { _T("24位彩色"), _T("256级灰度"), _T("黑白") }; #ifdef G200 static std::vector surportStyles = { _T("A3"),//pass _T("A4"), _T("A4横向"), _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("最大扫描尺寸"), }; #endif #ifdef G300 static std::vector surportStyles = { _T("A4"), _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("A4"), _T("A4横向"), _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("匹配原始尺寸"), }; #endif // G400 static std::vector reslutions{ _T("100"), _T("150"), _T("200"), _T("240"), _T("300") }; 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) { } CBasicPage::~CBasicPage() { } void CBasicPage::DoDataExchange(CDataExchange* pDX) { CTabPageSSL::DoDataExchange(pDX); DDX_Check(pDX, IDC_CKBSWITCHFRONTBACK, m_bswitchfrontback); } BOOL CBasicPage::OnInitDialog() { CTabPageSSL::OnInitDialog(); m_cmBoxColorMode = (CComboBox*)GetDlgItem(IDC_CMBCOLORTYPE); m_cmBoxSS = (CComboBox*)GetDlgItem(IDC_CMBSS); m_cmBoxResultion = (CComboBox*)GetDlgItem(IDC_CMBRESLUTION); m_cmBoxDuplex = (CComboBox*)GetDlgItem(IDC_CMBDUPLEX); 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 (const CString& reslution : reslutions) m_cmBoxResultion->AddString(reslution); for (int i = 0; i < duplexs.size(); i++) m_cmBoxDuplex->InsertString(i,duplexs[i]); m_cmBoxResultion->SetCurSel(0); m_cmBoxSS->SetCurSel(0); m_cmBoxColorMode->SetCurSel(0); m_cmBoxDuplex->SetCurSel(0); 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(); //} 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); //} } 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 totalcount = m_cmBoxDuplex->GetCount(); if (tmp_colorindex == 0 && tmp_paperindex >= 18 && tmp_resindex == 4) { m_cmBoxDuplex->DeleteString(4); m_cmBoxDuplex->SetCurSel(1); } else { if (totalcount != 5) { m_cmBoxDuplex->InsertString(4, TEXT("对折")); } } }