From da491b2184b8549d992a8bf6bd4487057de73d65 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Wed, 8 Feb 2023 14:15:09 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=AE=A1=E7=90=86=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=EF=BC=8C=E9=87=8D=E5=91=BD=E5=90=8D=E6=97=B6=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=90=8D=E5=AD=97=E9=87=8D=E5=A4=8D=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sane/DlgCfgMgr.cpp | 9 ++++++++- sane/DlgPage.cpp | 11 +++++++++++ sane/DlgPage.h | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/sane/DlgCfgMgr.cpp b/sane/DlgCfgMgr.cpp index 7a9ce52..cc61504 100644 --- a/sane/DlgCfgMgr.cpp +++ b/sane/DlgCfgMgr.cpp @@ -119,7 +119,14 @@ void dlg_cfg_mgr::handle_notify(UINT id, LPNMHDR pnhdr) if (cfg_) { - cfg_->rename_scheme(local_trans::u2a(label_.c_str(), CP_UTF8).c_str(), local_trans::u2a(pdisp->item.pszText, CP_UTF8).c_str()); + if (!cfg_->rename_scheme(local_trans::u2a(label_.c_str(), CP_UTF8).c_str(), local_trans::u2a(pdisp->item.pszText, CP_UTF8).c_str())) + { + std::wstring input(pdisp->item.pszText); + + input += L" " + local_trans::lang_trans_between_hz936(CONST_STRING_ALREADY_EXISTS); + ::MessageBoxW(hwnd(), input.c_str(), local_trans::lang_trans_between_hz936(CONST_STRING_RE_INPUT).c_str(), MB_OK | MB_ICONINFORMATION); + dlg_base::list_set_item_text(get_item(IDC_LIST1), pdisp->item.iItem, 0, label_.c_str()); + } } } } diff --git a/sane/DlgPage.cpp b/sane/DlgPage.cpp index c4229a0..9fb1780 100644 --- a/sane/DlgPage.cpp +++ b/sane/DlgPage.cpp @@ -224,6 +224,17 @@ void dlg_base::list_get_selected_items(HWND list_wnd, std::vector& sels) sels.push_back(i); } } +int dlg_base::list_set_item_text(HWND list_wnd, int item, int sub_item, const wchar_t* text) +{ + LV_ITEMW lvi = { 0 }; + + lvi.iItem = item; + lvi.iSubItem = sub_item; + lvi.pszText = (LPWSTR)text; + lvi.mask = LVIF_TEXT; + + return ListView_SetItem(list_wnd, &lvi) ? 0 : 1; +} BOOL dlg_base::handle_message(UINT msg, WPARAM wp, LPARAM lp) { diff --git a/sane/DlgPage.h b/sane/DlgPage.h index b32eaed..6e87f0e 100644 --- a/sane/DlgPage.h +++ b/sane/DlgPage.h @@ -73,6 +73,7 @@ public: static int list_get_column_count(HWND list_wnd); static std::wstring list_get_text(HWND list_wnd, int ind, int sub = 0); static void list_get_selected_items(HWND list_wnd, std::vector& sels); + static int list_set_item_text(HWND list_wnd, int item, int sub_item, const wchar_t* text); public: void set_ui_event_notify(void(__stdcall* notify)(int, void*, void*), void* param);