From 46e96bd6e4074bf358b9c963721e96df5c98ff97 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Fri, 3 Mar 2023 15:02:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=85=8D=E7=BD=AE=E6=96=B9?= =?UTF-8?q?=E6=A1=88=E5=8F=98=E6=9B=B4=E5=AD=98=E5=82=A8BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sane/DlgCfgMgr.cpp | 9 ++++++++- sane/DlgCfgMgr.h | 2 ++ sane/DlgSetting.cpp | 13 +++++++++++-- twain/twain/huagaods.cpp | 2 ++ 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/sane/DlgCfgMgr.cpp b/sane/DlgCfgMgr.cpp index 5b35962..a1b98e6 100644 --- a/sane/DlgCfgMgr.cpp +++ b/sane/DlgCfgMgr.cpp @@ -9,7 +9,7 @@ // CDlgIndicator 对话框 -dlg_cfg_mgr::dlg_cfg_mgr(gb::scanner_cfg* cfg, HWND parent) : cfg_(cfg), dlg_base(parent, IDD_CFG_MGR) +dlg_cfg_mgr::dlg_cfg_mgr(gb::scanner_cfg* cfg, HWND parent) : cfg_(cfg), dlg_base(parent, IDD_CFG_MGR), schm_changed_(false) { create(); @@ -199,10 +199,17 @@ void dlg_cfg_mgr::on_del_selected(void) { changed = true; ListView_DeleteItem(lwnd, sels[i]); + schm_changed_ = true; } } } void dlg_cfg_mgr::on_del_all(void) { cfg_->remove_all_schemes(); + ListView_DeleteAllItems(get_item(IDC_LIST1)); + schm_changed_ = true; +} +bool dlg_cfg_mgr::is_scheme_changed(void) +{ + return schm_changed_; } diff --git a/sane/DlgCfgMgr.h b/sane/DlgCfgMgr.h index 04accf3..6262fce 100644 --- a/sane/DlgCfgMgr.h +++ b/sane/DlgCfgMgr.h @@ -15,6 +15,7 @@ class dlg_cfg_mgr: public dlg_base { gb::scanner_cfg* cfg_; std::wstring label_; + bool schm_changed_; BOOL handle_message(UINT msg, WPARAM wp, LPARAM lp) override; void handle_command(WORD code, WORD id, HANDLE ctrl); @@ -32,4 +33,5 @@ public: ~dlg_cfg_mgr(); public: + bool is_scheme_changed(void); }; diff --git a/sane/DlgSetting.cpp b/sane/DlgSetting.cpp index 645574d..e894500 100644 --- a/sane/DlgSetting.cpp +++ b/sane/DlgSetting.cpp @@ -130,6 +130,7 @@ void dlg_setting::handle_command(WORD code, WORD id, HANDLE ctrl) } n->release(); } + s->end_setting(true); s->release(); } } @@ -143,7 +144,7 @@ void dlg_setting::handle_command(WORD code, WORD id, HANDLE ctrl) gb::sane_config_schm* s = cfg_->get_scheme(); if (s) { - s->end_setting(true); + s->end_setting(false); s->release(); } @@ -180,7 +181,7 @@ void dlg_setting::handle_command(WORD code, WORD id, HANDLE ctrl) gb::sane_config_schm* schm = cfg_->get_scheme(); if (schm) { - schm->end_setting(true); + schm->end_setting(false); schm->release(); } cfg_->select_scheme(nullptr); @@ -195,6 +196,14 @@ void dlg_setting::handle_command(WORD code, WORD id, HANDLE ctrl) { dlg_cfg_mgr dlg(cfg_, hwnd()); dlg.do_modal(hwnd()); + if (dlg.is_scheme_changed()) + { + gb::sane_config_schm* schm = cfg_->get_scheme(); + apply_scheme_(schm, apply_param_); + if (schm) + schm->release(); + refresh_controls(-1); + } } else if (id == IDC_BUTTON_CONFIG_MENU) { diff --git a/twain/twain/huagaods.cpp b/twain/twain/huagaods.cpp index 6c40107..dc24dd0 100644 --- a/twain/twain/huagaods.cpp +++ b/twain/twain/huagaods.cpp @@ -28,6 +28,8 @@ using namespace std::placeholders; extern HMODULE me_; +// WIA COM: IStiUSD & IWiaMiniDrv + //custom define caps enum enum CapTypeEx : unsigned short { CAP_TYPE_EX_FILL_BLACK_BKG = 0x8004,