CSettingPageUI.cpp 98 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372
  1. #include "../pch/pch.h"
  2. #include "CSettingPageUI.h"
  3. #include "../wnd/CChufangSettingWnd.h"
  4. #include "../print/CPosPrinter.h"
  5. #include "../helper/CComHelper.h"
  6. #include "../worker/CChengzhongWorker.h"
  7. #include <boost/array.hpp>
  8. //boost库的头文件
  9. #include <boost/asio.hpp>
  10. #include <boost/asio/io_context.hpp>
  11. using boost::asio::ip::tcp;
  12. #include "../tool/CFoodHandle.h"
  13. CSettingPageUI::CSettingPageUI()
  14. {
  15. }
  16. CSettingPageUI::~CSettingPageUI()
  17. {
  18. }
  19. //初始化当前页面的展示,处理默认展示效果,在页面被加载的时候调用
  20. void CSettingPageUI::InitControl()
  21. {
  22. CLabelUI* version = static_cast<CLabelUI*>(this->FindSubControl(_T("setting_version")));
  23. version->SetText((L"版本号:" + CLewaimaiString::UTF8ToUnicode(CSystem::GetVersion())).c_str());
  24. CCheckBoxUI* box = NULL;
  25. CComboUI* com = NULL;
  26. //外卖订单设置
  27. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_voice")));
  28. if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_voice") == "1")
  29. {
  30. box->Selected(true, false);
  31. }
  32. else
  33. {
  34. box->Selected(false, false);
  35. }
  36. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_autoconfirm")));
  37. if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_autoconfirm") == "1")
  38. {
  39. box->Selected(true, false);
  40. }
  41. else
  42. {
  43. box->Selected(false, false);
  44. }
  45. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_printer")));
  46. if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_printer") == "1")
  47. {
  48. box->Selected(true, false);
  49. }
  50. else
  51. {
  52. box->Selected(false, false);
  53. }
  54. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_biaoqian_printer")));
  55. if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_biaoqian_printer") == "1")
  56. {
  57. box->Selected(true, false);
  58. }
  59. else
  60. {
  61. box->Selected(false, false);
  62. }
  63. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_chufang_printer")));
  64. if (CSetting::GetInstance()->GetParam("setting_is_new_waimai_chufang_printer") == "1")
  65. {
  66. box->Selected(true, false);
  67. }
  68. else
  69. {
  70. box->Selected(false, false);
  71. }
  72. //店内订单设置
  73. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_voice")));
  74. if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_voice") == "1")
  75. {
  76. box->Selected(true, false);
  77. }
  78. else
  79. {
  80. box->Selected(false, false);
  81. }
  82. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_printer")));
  83. if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_printer") == "1")
  84. {
  85. box->Selected(true, false);
  86. }
  87. else
  88. {
  89. box->Selected(false, false);
  90. }
  91. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_biaoqian_printer")));
  92. if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_biaoqian_printer") == "1")
  93. {
  94. box->Selected(true, false);
  95. }
  96. else
  97. {
  98. box->Selected(false, false);
  99. }
  100. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_chufang_printer")));
  101. if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_chufang_printer") == "1")
  102. {
  103. box->Selected(true, false);
  104. }
  105. else
  106. {
  107. box->Selected(false, false);
  108. }
  109. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_saomadiancan_printer")));
  110. if (CSetting::GetInstance()->GetParam("setting_is_new_diannei_saomadiancan_printer") == "1")
  111. {
  112. box->Selected(true, false);
  113. }
  114. else
  115. {
  116. box->Selected(false, false);
  117. }
  118. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_diannei_xianjin_qianxiang")));
  119. if (CSetting::GetInstance()->GetParam("setting_is_diannei_xianjin_qianxiang") == "1")
  120. {
  121. box->Selected(true, false);
  122. }
  123. else
  124. {
  125. box->Selected(false, false);
  126. }
  127. //小票打印
  128. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_guige")));
  129. if (CSetting::GetInstance()->GetParam("setting_printer_guige") == "58")
  130. {
  131. com->SetInternVisible(true);
  132. com->SelectItem(0, false);
  133. }
  134. else
  135. {
  136. com->SetInternVisible(true);
  137. com->SelectItem(1, false);
  138. }
  139. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_lianshu")));
  140. std::string setting_printer_lianshu = CSetting::GetInstance()->GetParam("setting_printer_lianshu");
  141. if (setting_printer_lianshu == "1")
  142. {
  143. com->SetInternVisible(true);
  144. com->SelectItem(0, false);
  145. com->SetText(L"1联");
  146. }
  147. else if (setting_printer_lianshu == "2")
  148. {
  149. com->SetInternVisible(true);
  150. com->SelectItem(1, false);
  151. com->SetText(L"2联");
  152. }
  153. else if (setting_printer_lianshu == "3")
  154. {
  155. com->SetInternVisible(true);
  156. com->SelectItem(2, false);
  157. com->SetText(L"3联");
  158. }
  159. else if (setting_printer_lianshu == "4")
  160. {
  161. com->SetInternVisible(true);
  162. com->SelectItem(3, false);
  163. com->SetText(L"4联");
  164. }
  165. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_leixing")));
  166. std::string setting_printer_leixing = CSetting::GetInstance()->GetParam("setting_printer_leixing");
  167. CHorizontalLayoutUI* usb_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_usb_layout")));
  168. CHorizontalLayoutUI* chuankou_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_chuankou_layout")));
  169. CHorizontalLayoutUI* wangkou_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_wangkou_layout")));
  170. if (setting_printer_leixing == "auto")
  171. {
  172. com->SetInternVisible(true);
  173. com->SelectItem(0, false);
  174. com->SetText(L"智能识别模式");
  175. //智能识别模式隐藏这3个
  176. usb_layout->SetVisible(false);
  177. chuankou_layout->SetVisible(false);
  178. wangkou_layout->SetVisible(false);
  179. }
  180. else if (setting_printer_leixing == "usb")
  181. {
  182. com->SetInternVisible(true);
  183. com->SelectItem(1, false);
  184. com->SetText(L"usb");
  185. //显示usb布局
  186. usb_layout->SetVisible(true);
  187. chuankou_layout->SetVisible(false);
  188. wangkou_layout->SetVisible(false);
  189. //usb下拉框默认选中
  190. CComboUI* com_usb = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_usb")));
  191. com_usb->RemoveAll();
  192. //数据库中保存的之前的设置
  193. std::string setting_printer_usb = CSetting::GetInstance()->GetParam("setting_printer_usb");
  194. std::wstring ws_setting_printer_usb = CLewaimaiString::UTF8ToUnicode(setting_printer_usb);
  195. std::vector<std::wstring> usb_devices = CPosPrinterQueue::GetInstance()->getUsbDevices();
  196. int i = 0;
  197. int nSelect = -1;
  198. for (std::vector<std::wstring>::iterator it = usb_devices.begin(); it != usb_devices.end(); it++)
  199. {
  200. CListLabelElementUI* elem = new CListLabelElementUI();
  201. elem->SetText((*it).c_str());
  202. com_usb->Add(elem);
  203. if (*it == ws_setting_printer_usb)
  204. {
  205. nSelect = i;
  206. }
  207. i++;
  208. }
  209. com_usb->SetInternVisible(true);
  210. com_usb->SelectItem(nSelect, false);
  211. com_usb->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_usb).c_str());
  212. }
  213. else if (setting_printer_leixing == "bingkou")
  214. {
  215. com->SetInternVisible(true);
  216. com->SelectItem(2, false);
  217. com->SetText(L"并口");
  218. usb_layout->SetVisible(false);
  219. chuankou_layout->SetVisible(false);
  220. wangkou_layout->SetVisible(false);
  221. }
  222. else if (setting_printer_leixing == "chuankou")
  223. {
  224. com->SetInternVisible(true);
  225. com->SelectItem(3, false);
  226. com->SetText(L"串口");
  227. usb_layout->SetVisible(false);
  228. chuankou_layout->SetVisible(true);
  229. wangkou_layout->SetVisible(false);
  230. //串口下拉框默认选中
  231. CComboUI* com_chuankou = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_com")));
  232. com_chuankou->RemoveAll();
  233. //数据库中保存的之前的设置
  234. std::string setting_printer_com = CSetting::GetInstance()->GetParam("setting_printer_com");
  235. std::wstring ws_setting_printer_com = CLewaimaiString::UTF8ToUnicode(setting_printer_com);
  236. CComHelper helper;
  237. std::vector<std::wstring> com_devices = helper.getComPort();
  238. int i = 0;
  239. int nSelect = -1;
  240. for (std::vector<std::wstring>::iterator it = com_devices.begin(); it != com_devices.end(); it++)
  241. {
  242. CListLabelElementUI* elem = new CListLabelElementUI();
  243. elem->SetText((*it).c_str());
  244. com_chuankou->Add(elem);
  245. if (*it == ws_setting_printer_com)
  246. {
  247. nSelect = i;
  248. }
  249. i++;
  250. }
  251. com_chuankou->SetInternVisible(true);
  252. com_chuankou->SelectItem(nSelect, false);
  253. com_chuankou->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_com).c_str());
  254. }
  255. else if (setting_printer_leixing == "wangkou")
  256. {
  257. com->SetInternVisible(true);
  258. com->SelectItem(4, false);
  259. com->SetText(L"网口");
  260. usb_layout->SetVisible(false);
  261. chuankou_layout->SetVisible(false);
  262. wangkou_layout->SetVisible(true);
  263. std::string setting_printer_wangkou_ip = CSetting::GetInstance()->GetParam("setting_printer_wangkou_ip");
  264. CEditUI* ip_edit = static_cast<CEditUI*>(this->FindSubControl(_T("setting_printer_wangkou_ip")));
  265. ip_edit->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_wangkou_ip).c_str());
  266. }
  267. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_quhuo_big")));
  268. if (CSetting::GetInstance()->GetParam("setting_printer_quhuo_big") == "1")
  269. {
  270. box->Selected(true, false);
  271. }
  272. else
  273. {
  274. box->Selected(false, false);
  275. }
  276. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_dingdanhao_big")));
  277. if (CSetting::GetInstance()->GetParam("setting_printer_dingdanhao_big") == "1")
  278. {
  279. box->Selected(true, false);
  280. }
  281. else
  282. {
  283. box->Selected(false, false);
  284. }
  285. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_xiadanshijian_big")));
  286. if (CSetting::GetInstance()->GetParam("setting_printer_xiadanshijian_big") == "1")
  287. {
  288. box->Selected(true, false);
  289. }
  290. else
  291. {
  292. box->Selected(false, false);
  293. }
  294. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_peisongshijian_big")));
  295. if (CSetting::GetInstance()->GetParam("setting_printer_peisongshijian_big") == "1")
  296. {
  297. box->Selected(true, false);
  298. }
  299. else
  300. {
  301. box->Selected(false, false);
  302. }
  303. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_name_big")));
  304. if (CSetting::GetInstance()->GetParam("setting_printer_name_big") == "1")
  305. {
  306. box->Selected(true, false);
  307. }
  308. else
  309. {
  310. box->Selected(false, false);
  311. }
  312. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_phone_big")));
  313. if (CSetting::GetInstance()->GetParam("setting_printer_phone_big") == "1")
  314. {
  315. box->Selected(true, false);
  316. }
  317. else
  318. {
  319. box->Selected(false, false);
  320. }
  321. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_address_big")));
  322. if (CSetting::GetInstance()->GetParam("setting_printer_address_big") == "1")
  323. {
  324. box->Selected(true, false);
  325. }
  326. else
  327. {
  328. box->Selected(false, false);
  329. }
  330. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_shangpin_big")));
  331. if (CSetting::GetInstance()->GetParam("setting_printer_shangpin_big") == "1")
  332. {
  333. box->Selected(true, false);
  334. }
  335. else
  336. {
  337. box->Selected(false, false);
  338. }
  339. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_memo_big")));
  340. if (CSetting::GetInstance()->GetParam("setting_printer_memo_big") == "1")
  341. {
  342. box->Selected(true, false);
  343. }
  344. else
  345. {
  346. box->Selected(false, false);
  347. }
  348. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_price_big")));
  349. if (CSetting::GetInstance()->GetParam("setting_printer_price_big") == "1")
  350. {
  351. box->Selected(true, false);
  352. }
  353. else
  354. {
  355. box->Selected(false, false);
  356. }
  357. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_pay_big")));
  358. if (CSetting::GetInstance()->GetParam("setting_printer_pay_big") == "1")
  359. {
  360. box->Selected(true, false);
  361. }
  362. else
  363. {
  364. box->Selected(false, false);
  365. }
  366. //电子秤设置
  367. CComboUI* com_dianzicheng_xinghao = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_xinghao")));
  368. std::string setting_dianzicheng_xinghao = CSetting::GetInstance()->GetParam("setting_dianzicheng_xinghao");
  369. if (setting_dianzicheng_xinghao == "dahua_acs")
  370. {
  371. com_dianzicheng_xinghao->SetInternVisible(true);
  372. com_dianzicheng_xinghao->SelectItem(0, false);
  373. com_dianzicheng_xinghao->SetText(L"大华ACS系列");
  374. }
  375. else if (setting_dianzicheng_xinghao == "dingjian_os2x")
  376. {
  377. com_dianzicheng_xinghao->SetInternVisible(true);
  378. com_dianzicheng_xinghao->SelectItem(1, false);
  379. com_dianzicheng_xinghao->SetText(L"顶尖OS2X系列");
  380. }
  381. //串口下拉框默认选中
  382. CComboUI* com_dianzicheng = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_chuankou")));
  383. com_dianzicheng->RemoveAll();
  384. //数据库中保存的之前的设置
  385. std::string setting_dianzicheng_com = CSetting::GetInstance()->GetParam("setting_dianzicheng_com");
  386. std::wstring ws_setting_dianzicheng_com = CLewaimaiString::UTF8ToUnicode(setting_dianzicheng_com);
  387. CComHelper helper;
  388. std::vector<std::wstring> com_devices = helper.getComPort();
  389. int i = 0;
  390. int nSelect = -1;
  391. for (std::vector<std::wstring>::iterator it = com_devices.begin(); it != com_devices.end(); it++)
  392. {
  393. CListLabelElementUI* elem = new CListLabelElementUI();
  394. elem->SetText((*it).c_str());
  395. com_dianzicheng->Add(elem);
  396. if (*it == ws_setting_dianzicheng_com)
  397. {
  398. nSelect = i;
  399. }
  400. i++;
  401. }
  402. com_dianzicheng->SetInternVisible(true);
  403. com_dianzicheng->SelectItem(nSelect, false);
  404. com_dianzicheng->SetText(CLewaimaiString::UTF8ToUnicode(setting_dianzicheng_com).c_str());
  405. CComboUI* com_dianzicheng_botelv = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_botelv")));
  406. std::string setting_dianzicheng_botelv = CSetting::GetInstance()->GetParam("setting_dianzicheng_botelv");
  407. if (setting_dianzicheng_botelv == "600")
  408. {
  409. com_dianzicheng_botelv->SetInternVisible(true);
  410. com_dianzicheng_botelv->SelectItem(0, false);
  411. com_dianzicheng_botelv->SetText(L"600");
  412. }
  413. else if (setting_dianzicheng_botelv == "1200")
  414. {
  415. com_dianzicheng_botelv->SetInternVisible(true);
  416. com_dianzicheng_botelv->SelectItem(1, false);
  417. com_dianzicheng_botelv->SetText(L"1200");
  418. }
  419. else if (setting_dianzicheng_botelv == "2400")
  420. {
  421. com_dianzicheng_botelv->SetInternVisible(true);
  422. com_dianzicheng_botelv->SelectItem(2, false);
  423. com_dianzicheng_botelv->SetText(L"2400");
  424. }
  425. else if (setting_dianzicheng_botelv == "4800")
  426. {
  427. com_dianzicheng_botelv->SetInternVisible(true);
  428. com_dianzicheng_botelv->SelectItem(3, false);
  429. com_dianzicheng_botelv->SetText(L"4800");
  430. }
  431. else if (setting_dianzicheng_botelv == "9600")
  432. {
  433. com_dianzicheng_botelv->SetInternVisible(true);
  434. com_dianzicheng_botelv->SelectItem(4, false);
  435. com_dianzicheng_botelv->SetText(L"9600");
  436. }
  437. else if (setting_dianzicheng_botelv == "19200")
  438. {
  439. com_dianzicheng_botelv->SetInternVisible(true);
  440. com_dianzicheng_botelv->SelectItem(5, false);
  441. com_dianzicheng_botelv->SetText(L"19200");
  442. }
  443. else if (setting_dianzicheng_botelv == "38400")
  444. {
  445. com_dianzicheng_botelv->SetInternVisible(true);
  446. com_dianzicheng_botelv->SelectItem(6, false);
  447. com_dianzicheng_botelv->SetText(L"38400");
  448. }
  449. //初始化是否连接电子秤的单选框
  450. CCheckBoxUI* box_chengzhong_weilianjie = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_dianzicheng_weilianjie")));
  451. CCheckBoxUI* box_chengzhong_yilianjie = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_dianzicheng_yilianjie")));
  452. CVerticalLayoutUI* dianzicheng_layout = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("setting_dianzicheng_layout")));
  453. if (CSetting::GetInstance()->GetParam("setting_dianzicheng_is_lianjie") == "0")
  454. {
  455. box_chengzhong_weilianjie->Selected(true, false);
  456. box_chengzhong_yilianjie->Selected(false, false);
  457. dianzicheng_layout->SetVisible(false);
  458. }
  459. else
  460. {
  461. box_chengzhong_weilianjie->Selected(false, false);
  462. box_chengzhong_yilianjie->Selected(true, false);
  463. dianzicheng_layout->SetVisible(true);
  464. }
  465. //标签秤设置
  466. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_tiaomacheng_geshi")));
  467. std::string setting_tiaomacheng_geshi = CSetting::GetInstance()->GetParam("setting_tiaomacheng_geshi");
  468. if (setting_tiaomacheng_geshi == "1")
  469. {
  470. com->SetInternVisible(true);
  471. com->SelectItem(0, false);
  472. com->SetText(L"13位【FWWWWWWEEEEEC】");
  473. }
  474. else if (setting_tiaomacheng_geshi == "2")
  475. {
  476. com->SetInternVisible(true);
  477. com->SelectItem(1, false);
  478. com->SetText(L"13位【FWWWWWWNNNNNC】");
  479. }
  480. else if (setting_tiaomacheng_geshi == "3")
  481. {
  482. com->SetInternVisible(true);
  483. com->SelectItem(2, false);
  484. com->SetText(L"13位【FFWWWWWEEEEEC】");
  485. }
  486. else if (setting_tiaomacheng_geshi == "4")
  487. {
  488. com->SetInternVisible(true);
  489. com->SelectItem(3, false);
  490. com->SetText(L"13位【FFWWWWWNNNNNC】");
  491. }
  492. else if (setting_tiaomacheng_geshi == "5")
  493. {
  494. com->SetInternVisible(true);
  495. com->SelectItem(4, false);
  496. com->SetText(L"18位【FWWWWWWEEEEENNNNNC】");
  497. }
  498. else if (setting_tiaomacheng_geshi == "6")
  499. {
  500. com->SetInternVisible(true);
  501. com->SelectItem(5, false);
  502. com->SetText(L"18位【FWWWWWWNNNNNEEEEEC】");
  503. }
  504. else if (setting_tiaomacheng_geshi == "7")
  505. {
  506. com->SetInternVisible(true);
  507. com->SelectItem(6, false);
  508. com->SetText(L"18位【FFWWWWWEEEEENNNNNC】");
  509. }
  510. else if (setting_tiaomacheng_geshi == "8")
  511. {
  512. com->SetInternVisible(true);
  513. com->SelectItem(6, false);
  514. com->SetText(L"18位【FFWWWWWNNNNNEEEEEC】");
  515. }
  516. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_tiaomacheng_xinghao")));
  517. std::string setting_tiaomacheng_xinghao = CSetting::GetInstance()->GetParam("setting_tiaomacheng_xinghao");
  518. if (setting_tiaomacheng_xinghao == "dahua_tm")
  519. {
  520. com->SetInternVisible(true);
  521. com->SelectItem(0, false);
  522. com->SetText(L"大华TM系列");
  523. }
  524. std::string setting_tiaomacheng_ip = CSetting::GetInstance()->GetParam("setting_tiaomacheng_ip");
  525. CEditUI* tiaoma_ip_edit = static_cast<CEditUI*>(this->FindSubControl(_T("setting_tiaomacheng_ip")));
  526. tiaoma_ip_edit->SetText(CLewaimaiString::UTF8ToUnicode(setting_tiaomacheng_ip).c_str());
  527. //系统设置
  528. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_auto_start")));
  529. if (CSetting::GetInstance()->GetParam("setting_is_auto_start") == "1")
  530. {
  531. box->Selected(true, false);
  532. }
  533. else
  534. {
  535. box->Selected(false, false);
  536. }
  537. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_auto_login")));
  538. if (CSetting::GetInstance()->GetParam("setting_is_auto_login") == "1")
  539. {
  540. box->Selected(true, false);
  541. }
  542. else
  543. {
  544. box->Selected(false, false);
  545. }
  546. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_close_min")));
  547. if (CSetting::GetInstance()->GetParam("setting_is_close_min") == "1")
  548. {
  549. box->Selected(true, false);
  550. }
  551. else
  552. {
  553. box->Selected(false, false);
  554. }
  555. //初始化标签打印机的设置
  556. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_leixing")));
  557. setting_printer_leixing = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_leixing");
  558. usb_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_biaoqian_printer_usb_layout")));
  559. wangkou_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_biaoqian_printer_wangkou_layout")));
  560. if (setting_printer_leixing == "usb")
  561. {
  562. com->SetInternVisible(true);
  563. com->SelectItem(0, false);
  564. com->SetText(L"usb");
  565. //显示usb布局
  566. usb_layout->SetVisible(true);
  567. wangkou_layout->SetVisible(false);
  568. }
  569. else if (setting_printer_leixing == "wangkou")
  570. {
  571. com->SetInternVisible(true);
  572. com->SelectItem(1, false);
  573. com->SetText(L"网口");
  574. usb_layout->SetVisible(false);
  575. wangkou_layout->SetVisible(true);
  576. }
  577. //usb下拉框默认选中
  578. CComboUI* com_usb = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_usb")));
  579. com_usb->RemoveAll();
  580. //数据库中保存的之前的设置
  581. std::string setting_biaoqian_printer_usb = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_usb");
  582. std::wstring ws_setting_biaoqian_printer_usb = CLewaimaiString::UTF8ToUnicode(setting_biaoqian_printer_usb);
  583. std::vector<std::wstring> usb_devices = CPosPrinterQueue::GetInstance()->getUsbDevices();
  584. i = 0;
  585. nSelect = -1;
  586. for (std::vector<std::wstring>::iterator it = usb_devices.begin(); it != usb_devices.end(); it++)
  587. {
  588. CListLabelElementUI* elem = new CListLabelElementUI();
  589. elem->SetText((*it).c_str());
  590. com_usb->Add(elem);
  591. if (*it == ws_setting_biaoqian_printer_usb)
  592. {
  593. nSelect = i;
  594. }
  595. i++;
  596. }
  597. com_usb->SetInternVisible(true);
  598. com_usb->SelectItem(nSelect, false);
  599. com_usb->SetText(CLewaimaiString::UTF8ToUnicode(setting_biaoqian_printer_usb).c_str());
  600. //网口显示
  601. std::string setting_biaoqian_printer_wangkou_ip = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_wangkou_ip");
  602. CEditUI* ip_edit = static_cast<CEditUI*>(this->FindSubControl(_T("setting_biaoqian_printer_wangkou_ip")));
  603. ip_edit->SetText(CLewaimaiString::UTF8ToUnicode(setting_biaoqian_printer_wangkou_ip).c_str());
  604. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_guige")));
  605. std::string setting_biaoqian_printer_guige = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_guige");
  606. if (setting_biaoqian_printer_guige == "40*30mm")
  607. {
  608. com->SetInternVisible(true);
  609. com->SelectItem(0, false);
  610. com->SetText(L"40*30mm");
  611. }
  612. else if (setting_biaoqian_printer_guige == "35*25mm")
  613. {
  614. com->SetInternVisible(true);
  615. com->SelectItem(1, false);
  616. com->SetText(L"35*25mm");
  617. }
  618. else if (setting_biaoqian_printer_guige == "30*25mm")
  619. {
  620. com->SetInternVisible(true);
  621. com->SelectItem(2, false);
  622. com->SetText(L"30*25mm");
  623. }
  624. else if (setting_biaoqian_printer_guige == "30*20mm")
  625. {
  626. com->SetInternVisible(true);
  627. com->SelectItem(3, false);
  628. com->SetText(L"30*20mm");
  629. }
  630. else if (setting_biaoqian_printer_guige == "60*80mm")
  631. {
  632. com->SetInternVisible(true);
  633. com->SelectItem(4, false);
  634. com->SetText(L"60*80mm");
  635. }
  636. else if (setting_biaoqian_printer_guige == "80*60mm")
  637. {
  638. com->SetInternVisible(true);
  639. com->SelectItem(5, false);
  640. com->SetText(L"80*60mm");
  641. }
  642. com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_fangxiang")));
  643. std::string setting_biaoqian_printer_fangxiang = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_fangxiang");
  644. if (setting_biaoqian_printer_fangxiang == "1")
  645. {
  646. com->SetInternVisible(true);
  647. com->SelectItem(0, false);
  648. com->SetText(L"正方向");
  649. }
  650. else if (setting_biaoqian_printer_fangxiang == "0")
  651. {
  652. com->SetInternVisible(true);
  653. com->SelectItem(1, false);
  654. com->SetText(L"反方向");
  655. }
  656. box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_biaoqian_printer_is_type")));
  657. if (CSetting::GetInstance()->GetParam("setting_biaoqian_printer_is_type") == "1")
  658. {
  659. box->Selected(true, false);
  660. }
  661. else
  662. {
  663. box->Selected(false, false);
  664. }
  665. std::string type_ids = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_type_ids");
  666. std::vector<std::string> type_vector = CLewaimaiString::Split(type_ids, ",");
  667. //删除已经不存在的type_ids
  668. std::string new_foodtype_ids;
  669. CSqlite3 sqlite;
  670. for (std::vector<std::string>::iterator it = type_vector.begin(); it != type_vector.end(); it++)
  671. {
  672. CFoodType type;
  673. bool ret = sqlite.GetFoodtypeById((*it), type);
  674. if (!ret)
  675. {
  676. //分类被删掉了
  677. continue;
  678. }
  679. new_foodtype_ids += (*it) + ",";
  680. }
  681. //删掉不存在的type_id,更新内存和数据库
  682. new_foodtype_ids = new_foodtype_ids.substr(0, new_foodtype_ids.length() - 1);
  683. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_type_ids", new_foodtype_ids);
  684. //重新赋值
  685. type_ids = new_foodtype_ids;
  686. type_vector = CLewaimaiString::Split(type_ids, ",");
  687. std::map<std::string, int> type_map;
  688. for (std::vector<std::string>::iterator it = type_vector.begin(); it != type_vector.end(); it++)
  689. {
  690. type_map[*it] = 1;
  691. }
  692. //把所有分类显示出来
  693. CVerticalLayoutUI* pFenleiLayout = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("setting_biaoqian_printer_type_layout")));
  694. pFenleiLayout->RemoveAll();
  695. CSqlite3 sqlite_2;
  696. std::vector<CFoodType> foodtypes = sqlite_2.GetFoodtypes();
  697. for (std::vector<CFoodType>::iterator it = foodtypes.begin(); it != foodtypes.end(); it++)
  698. {
  699. CDialogBuilder builder;
  700. CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(builder.Create(_T("biaoqian_printer_setting_fenlei_select.xml"), (UINT)0, NULL, m_pManager));
  701. CCheckBoxUI* pCheck = static_cast<CCheckBoxUI*>(pEle->FindSubControl(_T("biaoqian_setting_fenleli_xuanze_checkbox")));
  702. pCheck->AddCustomAttribute(L"type_id", CLewaimaiString::UTF8ToUnicode((*it).id).c_str());
  703. if (type_map.find((*it).id) != type_map.end())
  704. {
  705. pCheck->Selected(true, false);
  706. }
  707. CLabelUI* pName = static_cast<CLabelUI*>(pEle->FindSubControl(_T("biaoqian_setting_fenleli_xuanze_name")));
  708. pName->SetText(CLewaimaiString::UTF8ToUnicode((*it).name).c_str());
  709. pFenleiLayout->Add(pEle);
  710. }
  711. pFenleiLayout->SetFixedHeight(foodtypes.size() * 30);
  712. //这里开始,初始化厨房打印机的设置
  713. CListUI* pPrinterList = static_cast<CListUI*>(this->FindSubControl(_T("setting_chufang_printer_list")));
  714. pPrinterList->RemoveAll();
  715. //获取厨房打印机的集合
  716. std::vector<ChufangPrinter> printers = CSetting::GetInstance()->getChufangPrints();
  717. for (std::vector<ChufangPrinter>::iterator it = printers.begin(); it != printers.end(); it++)
  718. {
  719. ChufangPrinter newPrinter = *it;
  720. CDialogBuilder builder;
  721. CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(builder.Create(_T("setting_chufang_printer_item.xml"), (UINT)0, NULL, m_pManager));
  722. CLabelUI* pName = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
  723. pName->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.name).c_str());
  724. CLabelUI* pIP = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_ip")));
  725. pIP->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.ip).c_str());
  726. CLabelUI* pGuige = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_guige")));
  727. if (newPrinter.guige == "58")
  728. {
  729. pGuige->SetText(L"58mm");
  730. }
  731. else
  732. {
  733. pGuige->SetText(L"80mm");
  734. }
  735. CLabelUI* pFendan = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_fendan")));
  736. if (newPrinter.fendan == "1")
  737. {
  738. pFendan->SetText(L"是");
  739. }
  740. else
  741. {
  742. pFendan->SetText(L"否");
  743. }
  744. CLabelUI* pFenlei = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei")));
  745. if (newPrinter.fenlei == "1")
  746. {
  747. pFenlei->SetText(L"是");
  748. }
  749. else
  750. {
  751. pFenlei->SetText(L"否");
  752. }
  753. std::string foodtypeNames = "";
  754. std::string foodtype_ids = newPrinter.fenlei_ids;
  755. //这个是删除掉不存在的type_id之后的
  756. std::string new_foodtype_ids = "";
  757. std::vector<std::string> ids = CLewaimaiString::Split(foodtype_ids, ",");
  758. CSqlite3 sqlite;
  759. for (std::vector<std::string>::iterator it = ids.begin(); it != ids.end(); it++)
  760. {
  761. CFoodType type;
  762. bool ret = sqlite.GetFoodtypeById((*it), type);
  763. if (!ret)
  764. {
  765. //分类被删掉了
  766. continue;
  767. }
  768. std::string name = type.name;
  769. foodtypeNames += name + CLewaimaiString::UnicodeToUTF8(L"、");
  770. new_foodtype_ids += (*it) + ",";
  771. }
  772. //删掉不存在的type_id,更新内存和数据库
  773. new_foodtype_ids = new_foodtype_ids.substr(0, new_foodtype_ids.length() - 1);
  774. if (new_foodtype_ids.compare(foodtype_ids) != 0)
  775. {
  776. CSetting::GetInstance()->UpdateChufangPrinter(newPrinter.date, newPrinter.name, newPrinter.ip, newPrinter.guige, newPrinter.fendan, newPrinter.fenlei, new_foodtype_ids, true);
  777. }
  778. std::wstring ws_foodtypeNames = CLewaimaiString::UTF8ToUnicode(foodtypeNames);
  779. ws_foodtypeNames = ws_foodtypeNames.substr(0, ws_foodtypeNames.size() - 1);
  780. CLabelUI* pFenleiIds = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei_ids")));
  781. pFenleiIds->SetText(ws_foodtypeNames.c_str());
  782. //设置标记属性,用于修改时候匹配
  783. pEle->AddCustomAttribute(L"date", CLewaimaiString::UTF8ToUnicode(newPrinter.date).c_str());
  784. pPrinterList->Add(pEle);
  785. }
  786. //初始化AI识别的设置
  787. box = static_cast<CCheckBoxUI *>(this->FindSubControl(_T("setting_is_ai_recognition_open")));
  788. if (CSetting::GetInstance()->GetParam("setting_is_ai_recognition_open") == "1")
  789. {
  790. box->Selected(true, false);
  791. }
  792. else
  793. {
  794. box->Selected(false, false);
  795. }
  796. //初始化展示设置
  797. CCheckBoxUI* box_youtu = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("xianshi_setting_youtu")));
  798. CCheckBoxUI* box_wutu = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("xianshi_setting_wutu")));
  799. if (CSetting::GetInstance()->GetParam("setting_xianshi_is_youtu") == "1")
  800. {
  801. box_youtu->Selected(true, false);
  802. box_wutu->Selected(false, false);
  803. }
  804. else
  805. {
  806. box_youtu->Selected(false, false);
  807. box_wutu->Selected(true, false);
  808. }
  809. //初始化快捷键展示
  810. this->InitKuaijiejianShow();
  811. }
  812. void CSettingPageUI::InitShow()
  813. {
  814. }
  815. //处理按钮点击类事件
  816. void CSettingPageUI::HandleClickMsg(TNotifyUI& msg)
  817. {
  818. CDuiString name = msg.pSender->GetName();
  819. std::wstring ws_name = name;
  820. //开始处理设置页面的
  821. if (name == _T("setting_is_new_waimai_voice"))
  822. {
  823. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_voice")));
  824. //注意这里的IsSelected如果为true,表示的是点击前为true,而不是点击后为true,所以这里设置状态要反过来
  825. if (box->IsSelected())
  826. {
  827. CSetting::GetInstance()->SetParam("setting_is_new_waimai_voice", "0");
  828. }
  829. else
  830. {
  831. CSetting::GetInstance()->SetParam("setting_is_new_waimai_voice", "1");
  832. }
  833. }
  834. else if (name == _T("setting_is_new_waimai_autoconfirm"))
  835. {
  836. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_autoconfirm")));
  837. if (box->IsSelected())
  838. {
  839. CSetting::GetInstance()->SetParam("setting_is_new_waimai_autoconfirm", "0");
  840. }
  841. else
  842. {
  843. CSetting::GetInstance()->SetParam("setting_is_new_waimai_autoconfirm", "1");
  844. }
  845. }
  846. else if (name == _T("setting_is_new_waimai_printer"))
  847. {
  848. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_printer")));
  849. if (box->IsSelected())
  850. {
  851. CSetting::GetInstance()->SetParam("setting_is_new_waimai_printer", "0");
  852. }
  853. else
  854. {
  855. CSetting::GetInstance()->SetParam("setting_is_new_waimai_printer", "1");
  856. }
  857. }
  858. else if (name == _T("setting_is_new_waimai_biaoqian_printer"))
  859. {
  860. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_biaoqian_printer")));
  861. if (box->IsSelected())
  862. {
  863. CSetting::GetInstance()->SetParam("setting_is_new_waimai_biaoqian_printer", "0");
  864. }
  865. else
  866. {
  867. CSetting::GetInstance()->SetParam("setting_is_new_waimai_biaoqian_printer", "1");
  868. }
  869. }
  870. else if (name == _T("setting_is_new_waimai_chufang_printer"))
  871. {
  872. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_waimai_chufang_printer")));
  873. if (box->IsSelected())
  874. {
  875. CSetting::GetInstance()->SetParam("setting_is_new_waimai_chufang_printer", "0");
  876. }
  877. else
  878. {
  879. CSetting::GetInstance()->SetParam("setting_is_new_waimai_chufang_printer", "1");
  880. }
  881. }
  882. else if (name == _T("setting_is_new_diannei_voice"))
  883. {
  884. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_voice")));
  885. //注意这里的IsSelected如果为true,表示的是点击前为true,而不是点击后为true,所以这里设置状态要反过来
  886. if (box->IsSelected())
  887. {
  888. CSetting::GetInstance()->SetParam("setting_is_new_diannei_voice", "0");
  889. }
  890. else
  891. {
  892. CSetting::GetInstance()->SetParam("setting_is_new_diannei_voice", "1");
  893. }
  894. }
  895. else if (name == _T("setting_is_new_diannei_printer"))
  896. {
  897. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_printer")));
  898. if (box->IsSelected())
  899. {
  900. CSetting::GetInstance()->SetParam("setting_is_new_diannei_printer", "0");
  901. }
  902. else
  903. {
  904. CSetting::GetInstance()->SetParam("setting_is_new_diannei_printer", "1");
  905. }
  906. }
  907. else if (name == _T("setting_is_new_diannei_biaoqian_printer"))
  908. {
  909. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_biaoqian_printer")));
  910. if (box->IsSelected())
  911. {
  912. CSetting::GetInstance()->SetParam("setting_is_new_diannei_biaoqian_printer", "0");
  913. }
  914. else
  915. {
  916. CSetting::GetInstance()->SetParam("setting_is_new_diannei_biaoqian_printer", "1");
  917. }
  918. }
  919. else if (name == _T("setting_is_new_diannei_chufang_printer"))
  920. {
  921. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_chufang_printer")));
  922. if (box->IsSelected())
  923. {
  924. CSetting::GetInstance()->SetParam("setting_is_new_diannei_chufang_printer", "0");
  925. }
  926. else
  927. {
  928. CSetting::GetInstance()->SetParam("setting_is_new_diannei_chufang_printer", "1");
  929. }
  930. }
  931. else if (name == _T("setting_is_new_diannei_saomadiancan_printer"))
  932. {
  933. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_new_diannei_saomadiancan_printer")));
  934. if (box->IsSelected())
  935. {
  936. CSetting::GetInstance()->SetParam("setting_is_new_diannei_saomadiancan_printer", "0");
  937. }
  938. else
  939. {
  940. CSetting::GetInstance()->SetParam("setting_is_new_diannei_saomadiancan_printer", "1");
  941. }
  942. }
  943. else if (name == _T("setting_is_diannei_xianjin_qianxiang"))
  944. {
  945. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_diannei_xianjin_qianxiang")));
  946. if (box->IsSelected())
  947. {
  948. CSetting::GetInstance()->SetParam("setting_is_diannei_xianjin_qianxiang", "0");
  949. }
  950. else
  951. {
  952. CSetting::GetInstance()->SetParam("setting_is_diannei_xianjin_qianxiang", "1");
  953. }
  954. }
  955. else if (name == _T("setting_printer_wangkouk_save_btn"))
  956. {
  957. CEditUI* wangkou_ip = static_cast<CEditUI*>(this->FindSubControl(_T("setting_printer_wangkou_ip")));
  958. std::wstring ip = wangkou_ip->GetText();
  959. CSetting::GetInstance()->SetParam("setting_printer_wangkou_ip", CLewaimaiString::UnicodeToUTF8(ip));
  960. }
  961. else if (name == _T("setting_printer_quhuo_big"))
  962. {
  963. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_quhuo_big")));
  964. if (box->IsSelected())
  965. {
  966. CSetting::GetInstance()->SetParam("setting_printer_quhuo_big", "0");
  967. }
  968. else
  969. {
  970. CSetting::GetInstance()->SetParam("setting_printer_quhuo_big", "1");
  971. }
  972. }
  973. else if (name == _T("setting_printer_dingdanhao_big"))
  974. {
  975. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_dingdanhao_big")));
  976. if (box->IsSelected())
  977. {
  978. CSetting::GetInstance()->SetParam("setting_printer_dingdanhao_big", "0");
  979. }
  980. else
  981. {
  982. CSetting::GetInstance()->SetParam("setting_printer_dingdanhao_big", "1");
  983. }
  984. }
  985. else if (name == _T("setting_printer_xiadanshijian_big"))
  986. {
  987. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_xiadanshijian_big")));
  988. if (box->IsSelected())
  989. {
  990. CSetting::GetInstance()->SetParam("setting_printer_xiadanshijian_big", "0");
  991. }
  992. else
  993. {
  994. CSetting::GetInstance()->SetParam("setting_printer_xiadanshijian_big", "1");
  995. }
  996. }
  997. else if (name == _T("setting_printer_peisongshijian_big"))
  998. {
  999. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_peisongshijian_big")));
  1000. if (box->IsSelected())
  1001. {
  1002. CSetting::GetInstance()->SetParam("setting_printer_peisongshijian_big", "0");
  1003. }
  1004. else
  1005. {
  1006. CSetting::GetInstance()->SetParam("setting_printer_peisongshijian_big", "1");
  1007. }
  1008. }
  1009. else if (name == _T("setting_printer_name_big"))
  1010. {
  1011. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_name_big")));
  1012. if (box->IsSelected())
  1013. {
  1014. CSetting::GetInstance()->SetParam("setting_printer_name_big", "0");
  1015. }
  1016. else
  1017. {
  1018. CSetting::GetInstance()->SetParam("setting_printer_name_big", "1");
  1019. }
  1020. }
  1021. else if (name == _T("setting_printer_phone_big"))
  1022. {
  1023. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_phone_big")));
  1024. if (box->IsSelected())
  1025. {
  1026. CSetting::GetInstance()->SetParam("setting_printer_phone_big", "0");
  1027. }
  1028. else
  1029. {
  1030. CSetting::GetInstance()->SetParam("setting_printer_phone_big", "1");
  1031. }
  1032. }
  1033. else if (name == _T("setting_printer_address_big"))
  1034. {
  1035. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_address_big")));
  1036. if (box->IsSelected())
  1037. {
  1038. CSetting::GetInstance()->SetParam("setting_printer_address_big", "0");
  1039. }
  1040. else
  1041. {
  1042. CSetting::GetInstance()->SetParam("setting_printer_address_big", "1");
  1043. }
  1044. }
  1045. else if (name == _T("setting_printer_shangpin_big"))
  1046. {
  1047. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_shangpin_big")));
  1048. if (box->IsSelected())
  1049. {
  1050. CSetting::GetInstance()->SetParam("setting_printer_shangpin_big", "0");
  1051. }
  1052. else
  1053. {
  1054. CSetting::GetInstance()->SetParam("setting_printer_shangpin_big", "1");
  1055. }
  1056. }
  1057. else if (name == _T("setting_printer_memo_big"))
  1058. {
  1059. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_memo_big")));
  1060. if (box->IsSelected())
  1061. {
  1062. CSetting::GetInstance()->SetParam("setting_printer_memo_big", "0");
  1063. }
  1064. else
  1065. {
  1066. CSetting::GetInstance()->SetParam("setting_printer_memo_big", "1");
  1067. }
  1068. }
  1069. else if (name == _T("setting_printer_price_big"))
  1070. {
  1071. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_price_big")));
  1072. if (box->IsSelected())
  1073. {
  1074. CSetting::GetInstance()->SetParam("setting_printer_price_big", "0");
  1075. }
  1076. else
  1077. {
  1078. CSetting::GetInstance()->SetParam("setting_printer_price_big", "1");
  1079. }
  1080. }
  1081. else if (name == _T("setting_printer_pay_big"))
  1082. {
  1083. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_printer_pay_big")));
  1084. if (box->IsSelected())
  1085. {
  1086. CSetting::GetInstance()->SetParam("setting_printer_pay_big", "0");
  1087. }
  1088. else
  1089. {
  1090. CSetting::GetInstance()->SetParam("setting_printer_pay_big", "1");
  1091. }
  1092. }
  1093. else if (name == _T("setting_biaoqian_printer_wangkouk_save_btn"))
  1094. {
  1095. CEditUI* wangkou_ip = static_cast<CEditUI*>(this->FindSubControl(_T("setting_biaoqian_printer_wangkou_ip")));
  1096. std::wstring ip = wangkou_ip->GetText();
  1097. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_wangkou_ip", CLewaimaiString::UnicodeToUTF8(ip));
  1098. }
  1099. else if (name == _T("setting_biaoqian_printer_is_type"))
  1100. {
  1101. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_biaoqian_printer_is_type")));
  1102. if (box->IsSelected())
  1103. {
  1104. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_is_type", "0");
  1105. }
  1106. else
  1107. {
  1108. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_is_type", "1");
  1109. }
  1110. }
  1111. else if (name == L"biaoqian_setting_fenleli_xuanze_checkbox")
  1112. {
  1113. std::wstring ws_type_id = msg.pSender->GetCustomAttribute(L"type_id");
  1114. std::string type_id = CLewaimaiString::UnicodeToUTF8(ws_type_id);
  1115. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(msg.pSender);
  1116. if (box->IsSelected())
  1117. {
  1118. //这里是从选中变为不选中,那么就删掉这个type_id
  1119. std::string type_ids = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_type_ids");
  1120. std::vector<std::string> type_vector = CLewaimaiString::Split(type_ids, ",");
  1121. int num = 0;
  1122. for (std::vector<std::string>::iterator it = type_vector.begin(); it != type_vector.end(); it++)
  1123. {
  1124. if (*it == type_id)
  1125. {
  1126. break;
  1127. }
  1128. num++;
  1129. }
  1130. type_vector.erase(type_vector.begin() + num);
  1131. std::string new_type_ids = CLewaimaiString::Merge(type_vector, ",");
  1132. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_type_ids", new_type_ids);
  1133. }
  1134. else
  1135. {
  1136. //这是从不选中变为选中
  1137. std::string type_ids = CSetting::GetInstance()->GetParam("setting_biaoqian_printer_type_ids");
  1138. std::string new_type_ids;
  1139. if (type_ids == "")
  1140. {
  1141. new_type_ids = type_id;
  1142. }
  1143. else
  1144. {
  1145. new_type_ids = type_ids + "," + type_id;
  1146. }
  1147. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_type_ids", new_type_ids);
  1148. }
  1149. }
  1150. else if (name == _T("setting_new_chufang_printer_btn"))
  1151. {
  1152. CChufangSettingWnd* pChufangFrame = new CChufangSettingWnd(1);
  1153. if (pChufangFrame != NULL)
  1154. {
  1155. pChufangFrame->Create(m_pManager->GetPaintWindow(), _T(""), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
  1156. pChufangFrame->SetIcon(IDI_ICON_DUILIB);
  1157. pChufangFrame->CenterWindow();
  1158. UINT ret = pChufangFrame->ShowModal();
  1159. if (ret == IDOK)
  1160. {
  1161. //这个时候是点击保存返回了,厨房打印机的数据已经建立好了,这个时候刷新表格的显示
  1162. CListUI* pPrinterList = static_cast<CListUI*>(this->FindSubControl(_T("setting_chufang_printer_list")));
  1163. //把最后一个厨房打印机取出来
  1164. ChufangPrinter newPrinter = CSetting::GetInstance()->getLastChufangPrinter();
  1165. CDialogBuilder builder;
  1166. CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(builder.Create(_T("setting_chufang_printer_item.xml"), (UINT)0, NULL, m_pManager));
  1167. CLabelUI* pName = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
  1168. pName->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.name).c_str());
  1169. CLabelUI* pIP = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_ip")));
  1170. pIP->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.ip).c_str());
  1171. CLabelUI* pGuige = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_guige")));
  1172. if (newPrinter.guige == "58")
  1173. {
  1174. pGuige->SetText(L"58mm");
  1175. }
  1176. else
  1177. {
  1178. pGuige->SetText(L"80mm");
  1179. }
  1180. CLabelUI* pFendan = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_fendan")));
  1181. if (newPrinter.fendan == "1")
  1182. {
  1183. pFendan->SetText(L"是");
  1184. }
  1185. else
  1186. {
  1187. pFendan->SetText(L"否");
  1188. }
  1189. CLabelUI* pFenlei = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei")));
  1190. if (newPrinter.fenlei == "1")
  1191. {
  1192. pFenlei->SetText(L"是");
  1193. }
  1194. else
  1195. {
  1196. pFenlei->SetText(L"否");
  1197. }
  1198. std::string foodtypeNames = "";
  1199. std::string foodtype_ids = newPrinter.fenlei_ids;
  1200. std::vector<std::string> ids = CLewaimaiString::Split(foodtype_ids, ",");
  1201. CSqlite3 sqlite;
  1202. for (std::vector<std::string>::iterator it = ids.begin(); it != ids.end(); it++)
  1203. {
  1204. CFoodType foodtype;
  1205. bool ret = sqlite.GetFoodtypeById(*it, foodtype);
  1206. if (!ret)
  1207. {
  1208. continue;
  1209. }
  1210. std::string name = foodtype.name;
  1211. std::wstring ws_name = CLewaimaiString::UTF8ToUnicode(name);
  1212. foodtypeNames += name + " ";
  1213. }
  1214. foodtypeNames = foodtypeNames.substr(0, foodtypeNames.size() - 1);
  1215. std::wstring ws_foodtypeNames = CLewaimaiString::UTF8ToUnicode(foodtypeNames);
  1216. CLabelUI* pFenleiIds = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei_ids")));
  1217. pFenleiIds->SetText(ws_foodtypeNames.c_str());
  1218. pEle->AddCustomAttribute(L"date", CLewaimaiString::UTF8ToUnicode(newPrinter.date).c_str());
  1219. pPrinterList->Add(pEle);
  1220. }
  1221. }
  1222. }
  1223. else if (name == _T("setting_is_auto_start"))
  1224. {
  1225. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_auto_start")));
  1226. if (box->IsSelected())
  1227. {
  1228. CSetting::GetInstance()->SetParam("setting_is_auto_start", "0");
  1229. CSystem::cancelAutoStart();
  1230. }
  1231. else
  1232. {
  1233. CSetting::GetInstance()->SetParam("setting_is_auto_start", "1");
  1234. CSystem::autostart();
  1235. }
  1236. }
  1237. else if (name == _T("setting_is_auto_login"))
  1238. {
  1239. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_auto_login")));
  1240. if (box->IsSelected())
  1241. {
  1242. CSetting::GetInstance()->SetParam("setting_is_auto_login", "0");
  1243. }
  1244. else
  1245. {
  1246. CSetting::GetInstance()->SetParam("setting_is_auto_login", "1");
  1247. }
  1248. }
  1249. else if (name == _T("setting_is_close_min"))
  1250. {
  1251. CCheckBoxUI* box = static_cast<CCheckBoxUI*>(this->FindSubControl(_T("setting_is_close_min")));
  1252. if (box->IsSelected())
  1253. {
  1254. CSetting::GetInstance()->SetParam("setting_is_close_min", "0");
  1255. }
  1256. else
  1257. {
  1258. CSetting::GetInstance()->SetParam("setting_is_close_min", "1");
  1259. }
  1260. }
  1261. else if (name == _T("setting_chufang_printer_item_update_btn"))
  1262. {
  1263. CListUI* pPrinterList = static_cast<CListUI*>(this->FindSubControl(_T("setting_chufang_printer_list")));
  1264. CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(msg.pSender->GetParent()->GetParent()->GetParent());
  1265. std::wstring date = pEle->GetCustomAttribute(L"date");
  1266. CChufangSettingWnd* pChufangFrame = new CChufangSettingWnd(2);
  1267. pChufangFrame->SetPrinterDate(CLewaimaiString::UnicodeToUTF8(date));
  1268. if (pChufangFrame != NULL)
  1269. {
  1270. pChufangFrame->Create(m_pManager->GetPaintWindow(), _T(""), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
  1271. pChufangFrame->SetIcon(IDI_ICON_DUILIB);
  1272. pChufangFrame->CenterWindow();
  1273. UINT ret = pChufangFrame->ShowModal();
  1274. if (ret == IDOK)
  1275. {
  1276. //这个时候是点击保存返回了,厨房打印机的数据已经建立好了,这个时候刷新表格的显示
  1277. CListUI* pPrinterList = static_cast<CListUI*>(this->FindSubControl(_T("setting_chufang_printer_list")));
  1278. ChufangPrinter newPrinter = CSetting::GetInstance()->GetChufangPrinter(CLewaimaiString::UnicodeToUTF8(date));
  1279. CLabelUI* pName = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
  1280. pName->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.name).c_str());
  1281. CLabelUI* pIP = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_ip")));
  1282. pIP->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.ip).c_str());
  1283. CLabelUI* pGuige = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_guige")));
  1284. if (newPrinter.guige == "58")
  1285. {
  1286. pGuige->SetText(L"58mm");
  1287. }
  1288. else
  1289. {
  1290. pGuige->SetText(L"80mm");
  1291. }
  1292. CLabelUI* pFendan = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_fendan")));
  1293. if (newPrinter.fendan == "1")
  1294. {
  1295. pFendan->SetText(L"是");
  1296. }
  1297. else
  1298. {
  1299. pFendan->SetText(L"否");
  1300. }
  1301. CLabelUI* pFenlei = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei")));
  1302. if (newPrinter.fenlei == "1")
  1303. {
  1304. pFenlei->SetText(L"是");
  1305. }
  1306. else
  1307. {
  1308. pFenlei->SetText(L"否");
  1309. }
  1310. std::string foodtypeNames = "";
  1311. std::string foodtype_ids = newPrinter.fenlei_ids;
  1312. std::vector<std::string> ids = CLewaimaiString::Split(foodtype_ids, ",");
  1313. CSqlite3 sqlite;
  1314. for (std::vector<std::string>::iterator it = ids.begin(); it != ids.end(); it++)
  1315. {
  1316. CFoodType foodtype;
  1317. bool ret = sqlite.GetFoodtypeById(*it, foodtype);
  1318. if (!ret)
  1319. {
  1320. continue;
  1321. }
  1322. std::string name = foodtype.name;
  1323. std::wstring ws_name = CLewaimaiString::UTF8ToUnicode(name);
  1324. foodtypeNames += name + " ";
  1325. }
  1326. foodtypeNames = foodtypeNames.substr(0, foodtypeNames.size() - 1);
  1327. std::wstring ws_foodtypeNames = CLewaimaiString::UTF8ToUnicode(foodtypeNames);
  1328. CLabelUI* pFenleiIds = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei_ids")));
  1329. pFenleiIds->SetText(ws_foodtypeNames.c_str());
  1330. }
  1331. }
  1332. }
  1333. else if (name == _T("setting_chufang_printer_item_delete_btn"))
  1334. {
  1335. CListUI* pPrinterList = static_cast<CListUI*>(this->FindSubControl(_T("setting_chufang_printer_list")));
  1336. CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(msg.pSender->GetParent()->GetParent()->GetParent());
  1337. std::wstring date = pEle->GetCustomAttribute(L"date");
  1338. //获得了ID,这个时候从内存和数据库中分别删除对应的记录
  1339. CSetting::GetInstance()->DelChufangPrinter(CLewaimaiString::UnicodeToUTF8(date));
  1340. pPrinterList->Remove(pEle);
  1341. }
  1342. else if (name == L"setting_tiaomacheng_saveip")
  1343. {
  1344. CEditUI* wangkou_ip = static_cast<CEditUI*>(this->FindSubControl(_T("setting_tiaomacheng_ip")));
  1345. std::wstring ip = wangkou_ip->GetText();
  1346. CSetting::GetInstance()->SetParam("setting_tiaomacheng_ip", CLewaimaiString::UnicodeToUTF8(ip));
  1347. }
  1348. else if (name == L"setting_tiaomacheng_tongbushangpin")
  1349. {
  1350. this->StartTongbuBiaoqiancheng();
  1351. }
  1352. else if (name == L"setting_tiaomacheng_tongburejian")
  1353. {
  1354. this->StartTongbuRejian();
  1355. }
  1356. else if (name == L"setting_tiaomacheng_qingkongplu")
  1357. {
  1358. this->StartQiongkongPLU();
  1359. }
  1360. else if (name == _T("setting_is_ai_recognition_open"))
  1361. {
  1362. CCheckBoxUI * box = static_cast<CCheckBoxUI *>(this->FindSubControl(_T("setting_is_ai_recognition_open")));
  1363. if (box->IsSelected())
  1364. {
  1365. CSetting::GetInstance()->SetParam("setting_is_ai_recognition_open", "0");
  1366. }
  1367. else
  1368. {
  1369. CSetting::GetInstance()->SetParam("setting_is_ai_recognition_open", "1");
  1370. }
  1371. }
  1372. else if (name == _T("setting_logout"))
  1373. {
  1374. //退出登录
  1375. m_pMainWnd->LoginOut(1);
  1376. }
  1377. else if (ws_name.find(L"setting_kuaijiejian_page_btn_") == 0)
  1378. {
  1379. //这个时候设置快捷键的状态和类型
  1380. m_mod = 0;
  1381. m_vk = 0;
  1382. m_isSet = false;
  1383. if (m_pMainWnd->GetIsKuaijiejianSetting() == false)
  1384. {
  1385. m_pMainWnd->SetIsKuaijiejianSetting(true);
  1386. }
  1387. if (name == L"setting_kuaijiejian_page_btn_weixinshoukuan")
  1388. {
  1389. m_kuaijiejian_type = 1;
  1390. }
  1391. else if (name == L"setting_kuaijiejian_page_btn_huiyuandenglu")
  1392. {
  1393. m_kuaijiejian_type = 2;
  1394. }
  1395. else if (name == L"setting_kuaijiejian_page_btn_huiyuanshoukuan")
  1396. {
  1397. m_kuaijiejian_type = 3;
  1398. }
  1399. else if (name == L"setting_kuaijiejian_page_btn_xianjinshoukuan")
  1400. {
  1401. m_kuaijiejian_type = 4;
  1402. }
  1403. else if (name == L"setting_kuaijiejian_page_btn_qianxiang")
  1404. {
  1405. m_kuaijiejian_type = 5;
  1406. }
  1407. else if (name == L"setting_kuaijiejian_page_btn_logout")
  1408. {
  1409. m_kuaijiejian_type = 6;
  1410. }
  1411. else if (name == L"setting_kuaijiejian_page_btn_tiaozhuan_diandan")
  1412. {
  1413. m_kuaijiejian_type = 7;
  1414. }
  1415. else if (name == L"setting_kuaijiejian_page_btn_tiaozhuan_dingdan")
  1416. {
  1417. m_kuaijiejian_type = 8;
  1418. }
  1419. else if (name == L"setting_kuaijiejian_page_btn_tiaozhuan_huiyuan")
  1420. {
  1421. m_kuaijiejian_type = 9;
  1422. }
  1423. else if (name == L"setting_kuaijiejian_page_btn_tiaozhuan_baobiao")
  1424. {
  1425. m_kuaijiejian_type = 10;
  1426. }
  1427. else if (name == L"setting_kuaijiejian_page_btn_tiaozhuan_jiaoban")
  1428. {
  1429. m_kuaijiejian_type = 11;
  1430. }
  1431. else if (name == L"setting_kuaijiejian_page_btn_tiaozhuan_shezhi")
  1432. {
  1433. m_kuaijiejian_type = 12;
  1434. }
  1435. else if (name == L"setting_kuaijiejian_page_btn_tiaozhuan_shangpin")
  1436. {
  1437. m_kuaijiejian_type = 13;
  1438. }
  1439. else if (name == L"setting_kuaijiejian_page_btn_tiaozhuan_kucun")
  1440. {
  1441. m_kuaijiejian_type = 14;
  1442. }
  1443. else if (name == L"setting_kuaijiejian_page_btn_tiaozhuan_caigou")
  1444. {
  1445. m_kuaijiejian_type = 15;
  1446. }
  1447. else if (name == L"setting_kuaijiejian_page_btn_tiaozhuan_zhuotai")
  1448. {
  1449. m_kuaijiejian_type = 16;
  1450. }
  1451. else if (name == L"setting_kuaijiejian_page_btn_tiaozhuan_shoukuan")
  1452. {
  1453. m_kuaijiejian_type = 17;
  1454. }
  1455. }
  1456. else if (name == L"setting_tongbu_btn")
  1457. {
  1458. StartTongbu();
  1459. }
  1460. }
  1461. //处理option切换事件,radio事件
  1462. void CSettingPageUI::HandleSelectChangeMsg(TNotifyUI& msg)
  1463. {
  1464. CDuiString name = msg.pSender->GetName();
  1465. //判断设置中心的tab
  1466. if (name == _T("setting_waimai_order_switch"))
  1467. {
  1468. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1469. pControl->SelectItem(0);
  1470. }
  1471. if (name == _T("setting_diannei_order_switch"))
  1472. {
  1473. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1474. pControl->SelectItem(1);
  1475. }
  1476. else if (name == _T("setting_printer_switch"))
  1477. {
  1478. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1479. pControl->SelectItem(2);
  1480. }
  1481. else if (name == _T("setting_biaoqian_printer_switch"))
  1482. {
  1483. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1484. pControl->SelectItem(3);
  1485. }
  1486. else if (name == _T("setting_chufang_printer_switch"))
  1487. {
  1488. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1489. pControl->SelectItem(4);
  1490. }
  1491. else if (name == _T("setting_dianzicheng_switch"))
  1492. {
  1493. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1494. pControl->SelectItem(5);
  1495. }
  1496. else if (name == _T("setting_tiaomacheng_switch"))
  1497. {
  1498. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1499. pControl->SelectItem(6);
  1500. }
  1501. else if (name == _T("setting_ai_recognition_switch"))
  1502. {
  1503. CTabLayoutUI * pControl = static_cast<CTabLayoutUI *>(this->FindSubControl(_T("setting_switch")));
  1504. pControl->SelectItem(7);
  1505. }
  1506. else if (name == _T("setting_xianshi_switch"))
  1507. {
  1508. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1509. pControl->SelectItem(8);
  1510. }
  1511. else if (name == _T("setting_tongbu_switch"))
  1512. {
  1513. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1514. pControl->SelectItem(9);
  1515. CLabelUI* label = static_cast<CLabelUI*>(this->FindSubControl(L"setting_tongbu_result"));
  1516. label->SetVisible(false);
  1517. }
  1518. else if (name == _T("setting_kuaijiejian_switch"))
  1519. {
  1520. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1521. pControl->SelectItem(10);
  1522. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_weixinshoukuan")));
  1523. m_pManager->SetFocus(NULL);
  1524. }
  1525. else if (name == _T("setting_system_switch"))
  1526. {
  1527. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1528. pControl->SelectItem(11);
  1529. }
  1530. else if (name == _T("setting_system_about"))
  1531. {
  1532. CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(this->FindSubControl(_T("setting_switch")));
  1533. pControl->SelectItem(12);
  1534. }
  1535. else if (name == _T("xianshi_setting_youtu"))
  1536. {
  1537. CSetting::GetInstance()->SetParam("setting_xianshi_is_youtu", "1");
  1538. }
  1539. else if (name == _T("xianshi_setting_wutu"))
  1540. {
  1541. CSetting::GetInstance()->SetParam("setting_xianshi_is_youtu", "0");
  1542. }
  1543. else if (name == _T("setting_dianzicheng_yilianjie"))
  1544. {
  1545. CSetting::GetInstance()->SetParam("setting_dianzicheng_is_lianjie", "1");
  1546. CVerticalLayoutUI* dianzicheng_layout = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("setting_dianzicheng_layout")));
  1547. dianzicheng_layout->SetVisible(true);
  1548. }
  1549. else if (name == _T("setting_dianzicheng_weilianjie"))
  1550. {
  1551. CSetting::GetInstance()->SetParam("setting_dianzicheng_is_lianjie", "0");
  1552. CVerticalLayoutUI* dianzicheng_layout = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("setting_dianzicheng_layout")));
  1553. dianzicheng_layout->SetVisible(false);
  1554. }
  1555. }
  1556. //处理下拉框、radio的切换事件
  1557. void CSettingPageUI::HandleItemSelectMsg(TNotifyUI& msg)
  1558. {
  1559. CDuiString name = msg.pSender->GetName();
  1560. if (name == _T("setting_printer_guige"))
  1561. {
  1562. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_guige")));
  1563. if (com->GetCurSel() == 0)
  1564. {
  1565. CSetting::GetInstance()->SetParam("setting_printer_guige", "58");
  1566. }
  1567. else
  1568. {
  1569. CSetting::GetInstance()->SetParam("setting_printer_guige", "80");
  1570. }
  1571. }
  1572. else if (name == _T("setting_printer_lianshu"))
  1573. {
  1574. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_lianshu")));
  1575. if (com->GetCurSel() == 0)
  1576. {
  1577. CSetting::GetInstance()->SetParam("setting_printer_lianshu", "1");
  1578. }
  1579. else if (com->GetCurSel() == 1)
  1580. {
  1581. CSetting::GetInstance()->SetParam("setting_printer_lianshu", "2");
  1582. }
  1583. else if (com->GetCurSel() == 2)
  1584. {
  1585. CSetting::GetInstance()->SetParam("setting_printer_lianshu", "3");
  1586. }
  1587. else if (com->GetCurSel() == 3)
  1588. {
  1589. CSetting::GetInstance()->SetParam("setting_printer_lianshu", "4");
  1590. }
  1591. }
  1592. else if (name == _T("setting_printer_leixing"))
  1593. {
  1594. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_leixing")));
  1595. CHorizontalLayoutUI* usb_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_usb_layout")));
  1596. CHorizontalLayoutUI* chuankou_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_chuankou_layout")));
  1597. CHorizontalLayoutUI* wangkou_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_printer_wangkou_layout")));
  1598. if (com->GetCurSel() == 0)
  1599. {
  1600. CSetting::GetInstance()->SetParam("setting_printer_leixing", "auto");
  1601. usb_layout->SetVisible(false);
  1602. chuankou_layout->SetVisible(false);
  1603. wangkou_layout->SetVisible(false);
  1604. }
  1605. else if (com->GetCurSel() == 1)
  1606. {
  1607. CSetting::GetInstance()->SetParam("setting_printer_leixing", "usb");
  1608. //显示usb布局
  1609. usb_layout->SetVisible(true);
  1610. chuankou_layout->SetVisible(false);
  1611. wangkou_layout->SetVisible(false);
  1612. //usb下拉框默认选中
  1613. CComboUI* com_usb = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_usb")));
  1614. com_usb->RemoveAll();
  1615. //数据库中保存的之前的设置
  1616. std::string setting_printer_usb = CSetting::GetInstance()->GetParam("setting_printer_usb");
  1617. std::wstring ws_setting_printer_usb = CLewaimaiString::UTF8ToUnicode(setting_printer_usb);
  1618. std::vector<std::wstring> usb_devices = CPosPrinterQueue::GetInstance()->getUsbDevices();
  1619. int i = 0;
  1620. int nSelect = -1;
  1621. for (std::vector<std::wstring>::iterator it = usb_devices.begin(); it != usb_devices.end(); it++)
  1622. {
  1623. CListLabelElementUI* elem = new CListLabelElementUI();
  1624. elem->SetText((*it).c_str());
  1625. com_usb->Add(elem);
  1626. if (*it == ws_setting_printer_usb)
  1627. {
  1628. nSelect = i;
  1629. }
  1630. i++;
  1631. }
  1632. com_usb->SetInternVisible(true);
  1633. com_usb->SelectItem(nSelect, false);
  1634. com_usb->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_usb).c_str());
  1635. }
  1636. else if (com->GetCurSel() == 2)
  1637. {
  1638. CSetting::GetInstance()->SetParam("setting_printer_leixing", "bingkou");
  1639. usb_layout->SetVisible(false);
  1640. chuankou_layout->SetVisible(false);
  1641. wangkou_layout->SetVisible(false);
  1642. }
  1643. else if (com->GetCurSel() == 3)
  1644. {
  1645. CSetting::GetInstance()->SetParam("setting_printer_leixing", "chuankou");
  1646. usb_layout->SetVisible(false);
  1647. chuankou_layout->SetVisible(true);
  1648. wangkou_layout->SetVisible(false);
  1649. //串口下拉框默认选中
  1650. CComboUI* com_chuankou = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_com")));
  1651. com_chuankou->RemoveAll();
  1652. //数据库中保存的之前的设置
  1653. std::string setting_printer_com = CSetting::GetInstance()->GetParam("setting_printer_com");
  1654. std::wstring ws_setting_printer_com = CLewaimaiString::UTF8ToUnicode(setting_printer_com);
  1655. CComHelper helper;
  1656. std::vector<std::wstring> com_devices = helper.getComPort();
  1657. int i = 0;
  1658. int nSelect = -1;
  1659. for (std::vector<std::wstring>::iterator it = com_devices.begin(); it != com_devices.end(); it++)
  1660. {
  1661. CListLabelElementUI* elem = new CListLabelElementUI();
  1662. elem->SetText((*it).c_str());
  1663. com_chuankou->Add(elem);
  1664. if (*it == ws_setting_printer_com)
  1665. {
  1666. nSelect = i;
  1667. }
  1668. i++;
  1669. }
  1670. com_chuankou->SetInternVisible(true);
  1671. com_chuankou->SelectItem(nSelect, false);
  1672. com_chuankou->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_com).c_str());
  1673. }
  1674. else if (com->GetCurSel() == 4)
  1675. {
  1676. CSetting::GetInstance()->SetParam("setting_printer_leixing", "wangkou");
  1677. usb_layout->SetVisible(false);
  1678. chuankou_layout->SetVisible(false);
  1679. wangkou_layout->SetVisible(true);
  1680. std::string setting_printer_wangkou_ip = CSetting::GetInstance()->GetParam("setting_printer_wangkou_ip");
  1681. CEditUI* ip_edit = static_cast<CEditUI*>(this->FindSubControl(_T("setting_printer_wangkou_ip")));
  1682. ip_edit->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_wangkou_ip).c_str());
  1683. }
  1684. }
  1685. else if (name == _T("setting_printer_usb"))
  1686. {
  1687. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_usb")));
  1688. std::wstring usb_device = com->GetText();
  1689. CSetting::GetInstance()->SetParam("setting_printer_usb", CLewaimaiString::UnicodeToUTF8(usb_device));
  1690. }
  1691. else if (name == _T("setting_printer_com"))
  1692. {
  1693. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_printer_com")));
  1694. std::wstring com_device = com->GetText();
  1695. CSetting::GetInstance()->SetParam("setting_printer_com", CLewaimaiString::UnicodeToUTF8(com_device));
  1696. }
  1697. else if (name == _T("setting_dianzicheng_xinghao"))
  1698. {
  1699. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_xinghao")));
  1700. if (com->GetCurSel() == 0)
  1701. {
  1702. CSetting::GetInstance()->SetParam("setting_dianzicheng_xinghao", "dahua_acs");
  1703. }
  1704. else if (com->GetCurSel() == 1)
  1705. {
  1706. CSetting::GetInstance()->SetParam("setting_dianzicheng_xinghao", "dingjian_os2x");
  1707. }
  1708. CChengzhongWorker::GetInstance()->RestartWork();
  1709. }
  1710. else if (name == _T("setting_dianzicheng_chuankou"))
  1711. {
  1712. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_chuankou")));
  1713. std::wstring com_device = com->GetText();
  1714. CSetting::GetInstance()->SetParam("setting_dianzicheng_com", CLewaimaiString::UnicodeToUTF8(com_device));
  1715. CChengzhongWorker::GetInstance()->RestartWork();
  1716. }
  1717. else if (name == _T("setting_dianzicheng_botelv"))
  1718. {
  1719. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_dianzicheng_botelv")));
  1720. std::wstring com_device = com->GetText();
  1721. CSetting::GetInstance()->SetParam("setting_dianzicheng_botelv", CLewaimaiString::UnicodeToUTF8(com_device));
  1722. CChengzhongWorker::GetInstance()->RestartWork();
  1723. }
  1724. else if (name == _T("setting_tiaomacheng_geshi"))
  1725. {
  1726. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_tiaomacheng_geshi")));
  1727. int nSelect = com->GetCurSel();
  1728. CSetting::GetInstance()->SetParam("setting_tiaomacheng_geshi", std::to_string(nSelect + 1));
  1729. }
  1730. else if (name == _T("setting_tiaomacheng_xinghao"))
  1731. {
  1732. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_tiaomacheng_xinghao")));
  1733. if (com->GetCurSel() == 0)
  1734. {
  1735. CSetting::GetInstance()->SetParam("setting_tiaomacheng_xinghao", "dahua_tm");
  1736. }
  1737. }
  1738. else if (name == _T("setting_biaoqian_printer_leixing"))
  1739. {
  1740. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_leixing")));
  1741. CHorizontalLayoutUI* usb_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_biaoqian_printer_usb_layout")));
  1742. CHorizontalLayoutUI* wangkou_layout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("setting_biaoqian_printer_wangkou_layout")));
  1743. if (com->GetCurSel() == 0)
  1744. {
  1745. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_leixing", "usb");
  1746. //显示usb布局
  1747. usb_layout->SetVisible(true);
  1748. wangkou_layout->SetVisible(false);
  1749. }
  1750. else if (com->GetCurSel() == 1)
  1751. {
  1752. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_leixing", "wangkou");
  1753. usb_layout->SetVisible(false);
  1754. wangkou_layout->SetVisible(true);
  1755. }
  1756. }
  1757. else if (name == _T("setting_biaoqian_printer_usb"))
  1758. {
  1759. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_usb")));
  1760. std::wstring usb_device = com->GetText();;
  1761. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_usb", CLewaimaiString::UnicodeToUTF8(usb_device));
  1762. }
  1763. else if (name == _T("setting_biaoqian_printer_guige"))
  1764. {
  1765. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_guige")));
  1766. if (com->GetCurSel() == 0)
  1767. {
  1768. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_guige", "40*30mm");
  1769. }
  1770. else if (com->GetCurSel() == 1)
  1771. {
  1772. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_guige", "35*25mm");
  1773. }
  1774. else if (com->GetCurSel() == 2)
  1775. {
  1776. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_guige", "30*25mm");
  1777. }
  1778. else if (com->GetCurSel() == 3)
  1779. {
  1780. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_guige", "30*20mm");
  1781. }
  1782. else if (com->GetCurSel() == 4)
  1783. {
  1784. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_guige", "60*80mm");
  1785. }
  1786. else if (com->GetCurSel() == 5)
  1787. {
  1788. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_guige", "80*60mm");
  1789. }
  1790. }
  1791. else if (name == _T("setting_biaoqian_printer_fangxiang"))
  1792. {
  1793. CComboUI* com = static_cast<CComboUI*>(this->FindSubControl(_T("setting_biaoqian_printer_fangxiang")));
  1794. if (com->GetCurSel() == 0)
  1795. {
  1796. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_fangxiang", "1");
  1797. }
  1798. else if (com->GetCurSel() == 1)
  1799. {
  1800. CSetting::GetInstance()->SetParam("setting_biaoqian_printer_fangxiang", "0");
  1801. }
  1802. }
  1803. }
  1804. //处理编辑框输入内容改变事件
  1805. void CSettingPageUI::HandleTextChangedMsg(TNotifyUI& msg)
  1806. {
  1807. }
  1808. //处理扫码枪捕捉到的扫码信息
  1809. void CSettingPageUI::HandleTextCapture(std::string content)
  1810. {
  1811. }
  1812. bool CSettingPageUI::HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
  1813. {
  1814. if (uMsg == WM_SETTING_TONGBU_SUCCESS)
  1815. {
  1816. CLabelUI* label = static_cast<CLabelUI*>(this->FindSubControl(L"setting_tongbu_result"));
  1817. label->SetText(L"同步成功!");
  1818. label->SetVisible(true);
  1819. }
  1820. else if (uMsg == WM_SETTING_TONGBU_FAIL)
  1821. {
  1822. CLabelUI* label = static_cast<CLabelUI*>(this->FindSubControl(L"setting_tongbu_result"));
  1823. label->SetText(m_tongbu_error.c_str());
  1824. label->SetVisible(true);
  1825. }
  1826. else if (uMsg == WM_KEYDOWN || uMsg == WM_SYSKEYDOWN || uMsg == WM_KEYUP || uMsg == WM_SYSKEYUP)
  1827. {
  1828. //处理热键的键盘消息
  1829. if (m_pMainWnd->GetIsKuaijiejianSetting() == true)
  1830. {
  1831. //正在设置快捷键
  1832. return OnHotKeyDown(uMsg, wParam, lParam);
  1833. }
  1834. }
  1835. return false;
  1836. }
  1837. bool CSettingPageUI::OnHotKeyDown(UINT uMsg, WPARAM wParam, LPARAM lParam)
  1838. {
  1839. if (uMsg == WM_KEYDOWN || uMsg == WM_SYSKEYDOWN)
  1840. {
  1841. if (wParam != VK_CONTROL && wParam != VK_MENU && wParam != VK_SHIFT)
  1842. {
  1843. //这个情况,按的是字母键之类的
  1844. CDuiString duiText;
  1845. if (VK_F1 <= wParam && wParam <= VK_F12)
  1846. {
  1847. //快捷键就是F1到F12,不需要搭配ctrl之类的
  1848. m_mod = 0;
  1849. duiText.Format(_T("F%d"), wParam - VK_F1 + 1);
  1850. }
  1851. else if (wParam == VK_BACK || wParam == VK_DELETE)
  1852. {
  1853. //按了删除键,清空快捷键
  1854. m_mod = 0;
  1855. duiText = L"";
  1856. }
  1857. else if (m_mod == MOD_CONTROL)
  1858. {
  1859. duiText.Format(_T("CTRL + %c"), wParam);
  1860. }
  1861. else if (m_mod == MOD_ALT)
  1862. {
  1863. duiText.Format(_T("ALT + %c"), wParam);
  1864. }
  1865. else if (m_mod == MOD_SHIFT)
  1866. {
  1867. duiText.Format(_T("SHIFT + %c"), wParam);
  1868. }
  1869. else if (m_mod == 0)
  1870. {
  1871. //直接按的字母键,无效
  1872. m_mod = 0;
  1873. m_vk = 0;
  1874. m_isSet = false;
  1875. return true;
  1876. }
  1877. //到这里来设置成功了,做展示
  1878. if (m_kuaijiejian_type == 1)
  1879. {
  1880. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_weixinshoukuan")));
  1881. focusEdit->SetText(duiText);
  1882. }
  1883. else if (m_kuaijiejian_type == 2)
  1884. {
  1885. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_huiyuandenglu")));
  1886. focusEdit->SetText(duiText);
  1887. }
  1888. else if (m_kuaijiejian_type == 3)
  1889. {
  1890. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_huiyuanshoukuan")));
  1891. focusEdit->SetText(duiText);
  1892. }
  1893. else if (m_kuaijiejian_type == 4)
  1894. {
  1895. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_xianjinshoukuan")));
  1896. focusEdit->SetText(duiText);
  1897. }
  1898. else if (m_kuaijiejian_type == 5)
  1899. {
  1900. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_qianxiang")));
  1901. focusEdit->SetText(duiText);
  1902. }
  1903. else if (m_kuaijiejian_type == 6)
  1904. {
  1905. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_logout")));
  1906. focusEdit->SetText(duiText);
  1907. }
  1908. else if (m_kuaijiejian_type == 7)
  1909. {
  1910. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_diandan")));
  1911. focusEdit->SetText(duiText);
  1912. }
  1913. else if (m_kuaijiejian_type == 8)
  1914. {
  1915. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_dingdan")));
  1916. focusEdit->SetText(duiText);
  1917. }
  1918. else if (m_kuaijiejian_type == 9)
  1919. {
  1920. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_huiyuan")));
  1921. focusEdit->SetText(duiText);
  1922. }
  1923. else if (m_kuaijiejian_type == 10)
  1924. {
  1925. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_baobiao")));
  1926. focusEdit->SetText(duiText);
  1927. }
  1928. else if (m_kuaijiejian_type == 11)
  1929. {
  1930. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_jiaoban")));
  1931. focusEdit->SetText(duiText);
  1932. }
  1933. else if (m_kuaijiejian_type == 12)
  1934. {
  1935. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_shezhi")));
  1936. focusEdit->SetText(duiText);
  1937. }
  1938. else if (m_kuaijiejian_type == 13)
  1939. {
  1940. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_shangpin")));
  1941. focusEdit->SetText(duiText);
  1942. }
  1943. else if (m_kuaijiejian_type == 14)
  1944. {
  1945. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_kucun")));
  1946. focusEdit->SetText(duiText);
  1947. }
  1948. else if (m_kuaijiejian_type == 15)
  1949. {
  1950. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_caigou")));
  1951. focusEdit->SetText(duiText);
  1952. }
  1953. else if (m_kuaijiejian_type == 16)
  1954. {
  1955. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_zhuotai")));
  1956. focusEdit->SetText(duiText);
  1957. }
  1958. else if (m_kuaijiejian_type == 17)
  1959. {
  1960. CButtonUI* focusEdit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_shoukuan")));
  1961. focusEdit->SetText(duiText);
  1962. }
  1963. if (wParam == VK_BACK || wParam == VK_DELETE)
  1964. {
  1965. //按了删除键,清空快捷键
  1966. m_vk = 0;
  1967. }
  1968. else
  1969. {
  1970. m_vk = wParam;
  1971. }
  1972. m_isSet = true;
  1973. }
  1974. else
  1975. {
  1976. //按的是控制键,这里只支持3选1,不能更多组合
  1977. if (wParam == VK_CONTROL)
  1978. {
  1979. m_mod = MOD_CONTROL;
  1980. }
  1981. else if (wParam == VK_MENU)
  1982. {
  1983. m_mod = MOD_ALT;
  1984. }
  1985. else if (wParam == VK_SHIFT)
  1986. {
  1987. m_mod = MOD_SHIFT;
  1988. }
  1989. m_isSet = false;
  1990. }
  1991. }
  1992. else if (uMsg == WM_KEYUP || uMsg == WM_SYSKEYUP)
  1993. {
  1994. //这个是只按了控制键,没有按其他的键
  1995. if (!m_isSet)
  1996. {
  1997. if (wParam == VK_CONTROL)
  1998. {
  1999. m_mod = 0;
  2000. }
  2001. else if (wParam == VK_MENU)
  2002. {
  2003. m_mod = 0;
  2004. }
  2005. else if (wParam == VK_SHIFT)
  2006. {
  2007. m_mod = 0;
  2008. }
  2009. }
  2010. else
  2011. {
  2012. //这里表示已经设置好了,等后面保存
  2013. if (wParam != VK_CONTROL && wParam != VK_MENU && wParam != VK_SHIFT)
  2014. {
  2015. //准备开始注册热键了
  2016. if (m_kuaijiejian_type == 1)
  2017. {
  2018. CSetting::GetInstance()->SetParam("setting_kuaijiejian_weixinshoukuan_mod", std::to_string(m_mod));
  2019. CSetting::GetInstance()->SetParam("setting_kuaijiejian_weixinshoukuan_vk", std::to_string(m_vk));
  2020. }
  2021. else if (m_kuaijiejian_type == 2)
  2022. {
  2023. CSetting::GetInstance()->SetParam("setting_kuaijiejian_huiyuandenglu_mod", std::to_string(m_mod));
  2024. CSetting::GetInstance()->SetParam("setting_kuaijiejian_huiyuandenglu_vk", std::to_string(m_vk));
  2025. }
  2026. else if (m_kuaijiejian_type == 3)
  2027. {
  2028. CSetting::GetInstance()->SetParam("setting_kuaijiejian_huiyuanshoukuan_mod", std::to_string(m_mod));
  2029. CSetting::GetInstance()->SetParam("setting_kuaijiejian_huiyuanshoukuan_vk", std::to_string(m_vk));
  2030. }
  2031. else if (m_kuaijiejian_type == 4)
  2032. {
  2033. CSetting::GetInstance()->SetParam("setting_kuaijiejian_xianjinshoukuan_mod", std::to_string(m_mod));
  2034. CSetting::GetInstance()->SetParam("setting_kuaijiejian_xianjinshoukuan_vk", std::to_string(m_vk));
  2035. }
  2036. else if (m_kuaijiejian_type == 5)
  2037. {
  2038. CSetting::GetInstance()->SetParam("setting_kuaijiejian_qianxiang_mod", std::to_string(m_mod));
  2039. CSetting::GetInstance()->SetParam("setting_kuaijiejian_qianxiang_vk", std::to_string(m_vk));
  2040. }
  2041. else if (m_kuaijiejian_type == 6)
  2042. {
  2043. CSetting::GetInstance()->SetParam("setting_kuaijiejian_logout_mod", std::to_string(m_mod));
  2044. CSetting::GetInstance()->SetParam("setting_kuaijiejian_logout_vk", std::to_string(m_vk));
  2045. }
  2046. else if (m_kuaijiejian_type == 7)
  2047. {
  2048. CSetting::GetInstance()->SetParam("setting_kuaijiejian_diandan_mod", std::to_string(m_mod));
  2049. CSetting::GetInstance()->SetParam("setting_kuaijiejian_diandan_vk", std::to_string(m_vk));
  2050. }
  2051. else if (m_kuaijiejian_type == 8)
  2052. {
  2053. CSetting::GetInstance()->SetParam("setting_kuaijiejian_dingdan_mod", std::to_string(m_mod));
  2054. CSetting::GetInstance()->SetParam("setting_kuaijiejian_dingdan_vk", std::to_string(m_vk));
  2055. }
  2056. else if (m_kuaijiejian_type == 9)
  2057. {
  2058. CSetting::GetInstance()->SetParam("setting_kuaijiejian_huiyuan_mod", std::to_string(m_mod));
  2059. CSetting::GetInstance()->SetParam("setting_kuaijiejian_huiyuan_vk", std::to_string(m_vk));
  2060. }
  2061. else if (m_kuaijiejian_type == 10)
  2062. {
  2063. CSetting::GetInstance()->SetParam("setting_kuaijiejian_baobiao_mod", std::to_string(m_mod));
  2064. CSetting::GetInstance()->SetParam("setting_kuaijiejian_baobiao_vk", std::to_string(m_vk));
  2065. }
  2066. else if (m_kuaijiejian_type == 11)
  2067. {
  2068. CSetting::GetInstance()->SetParam("setting_kuaijiejian_jiaoban_mod", std::to_string(m_mod));
  2069. CSetting::GetInstance()->SetParam("setting_kuaijiejian_jiaoban_vk", std::to_string(m_vk));
  2070. }
  2071. else if (m_kuaijiejian_type == 12)
  2072. {
  2073. CSetting::GetInstance()->SetParam("setting_kuaijiejian_shezhi_mod", std::to_string(m_mod));
  2074. CSetting::GetInstance()->SetParam("setting_kuaijiejian_shezhi_vk", std::to_string(m_vk));
  2075. }
  2076. else if (m_kuaijiejian_type == 13)
  2077. {
  2078. CSetting::GetInstance()->SetParam("setting_kuaijiejian_shangpin_mod", std::to_string(m_mod));
  2079. CSetting::GetInstance()->SetParam("setting_kuaijiejian_shangpin_vk", std::to_string(m_vk));
  2080. }
  2081. else if (m_kuaijiejian_type == 14)
  2082. {
  2083. CSetting::GetInstance()->SetParam("setting_kuaijiejian_kucun_mod", std::to_string(m_mod));
  2084. CSetting::GetInstance()->SetParam("setting_kuaijiejian_kucun_vk", std::to_string(m_vk));
  2085. }
  2086. else if (m_kuaijiejian_type == 15)
  2087. {
  2088. CSetting::GetInstance()->SetParam("setting_kuaijiejian_caigou_mod", std::to_string(m_mod));
  2089. CSetting::GetInstance()->SetParam("setting_kuaijiejian_caigou_vk", std::to_string(m_vk));
  2090. }
  2091. else if (m_kuaijiejian_type == 16)
  2092. {
  2093. CSetting::GetInstance()->SetParam("setting_kuaijiejian_zhuotai_mod", std::to_string(m_mod));
  2094. CSetting::GetInstance()->SetParam("setting_kuaijiejian_zhuotai_vk", std::to_string(m_vk));
  2095. }
  2096. else if (m_kuaijiejian_type == 17)
  2097. {
  2098. CSetting::GetInstance()->SetParam("setting_kuaijiejian_shoukuan_mod", std::to_string(m_mod));
  2099. CSetting::GetInstance()->SetParam("setting_kuaijiejian_shoukuan_vk", std::to_string(m_vk));
  2100. }
  2101. m_pMainWnd->UpdateRegisterHotKey();
  2102. }
  2103. }
  2104. }
  2105. return true;
  2106. }
  2107. void CSettingPageUI::StartTongbuBiaoqiancheng()
  2108. {
  2109. std::thread(&CSettingPageUI::HandleTongbuBiaoqiancheng, this).detach();
  2110. }
  2111. void CSettingPageUI::HandleTongbuBiaoqiancheng()
  2112. {
  2113. boost::asio::io_context m_io;
  2114. boost::asio::ip::tcp::socket m_socket(m_io);
  2115. std::string ip = CSetting::GetInstance()->GetParam("setting_tiaomacheng_ip");
  2116. //初始化连接
  2117. try
  2118. {
  2119. boost::asio::ip::tcp::endpoint ep(boost::asio::ip::make_address(ip.c_str()), 4001);
  2120. m_socket.connect(ep);
  2121. }
  2122. catch (std::exception& e)
  2123. {
  2124. std::string err = e.what();
  2125. LOG_INFO("条码秤连接失败,IP地址:" << ip.c_str() << ",错误信息:" << err.c_str());
  2126. m_errinfo = L"条码秤连接失败,请检查IP设置,IP地址:" + CLewaimaiString::UTF8ToUnicode(ip);
  2127. MessageBoxW(NULL, m_errinfo.c_str(), L"条码秤连接失败", MB_OK);
  2128. return;
  2129. }
  2130. //!0V + 4位PLU + A + 7位商品编码 + 6位数价格(单位分) + 模式(0:称重,1:计件,2:定重) + 000000 + 3位有效期 + 2位店号(01-99)+ 000000000000000 + 2位皮重(00-15)+
  2131. //+ 0000000000000000000000000000000B + 商品名称区位码 + CDE + 换行符
  2132. CSqlite3 sqlite;
  2133. std::vector<CFood> foods = sqlite.GetFoodForTiaomacheng();
  2134. //注意这里商品只能一条一条的同步,不能很多条的命令拼装在一起同步
  2135. for (std::vector<CFood>::iterator it = foods.begin(); it != foods.end(); it++)
  2136. {
  2137. std::string data = "";
  2138. data += "!0V";
  2139. //处理PLU;
  2140. int n_plu = atoi(it->weight_plu_code.c_str());
  2141. if (n_plu < 1)
  2142. {
  2143. //无效的plu
  2144. continue;
  2145. }
  2146. else if (n_plu > 4000)
  2147. {
  2148. //无效的plu
  2149. continue;
  2150. }
  2151. std::string plu = std::to_string(n_plu);
  2152. plu = CLewaimaiString::BuZifuLeft(plu, 4 - plu.length(), '0');
  2153. data += plu;
  2154. data += "A";
  2155. //处理商品编码
  2156. int n_bianma = atoi(it->weight_food_code.c_str());
  2157. if (n_bianma < 1)
  2158. {
  2159. //无效的编码
  2160. continue;
  2161. }
  2162. else if (n_bianma > 999999)
  2163. {
  2164. //无效的编码
  2165. continue;
  2166. }
  2167. std::string bianma = std::to_string(n_bianma);
  2168. bianma = CLewaimaiString::BuZifuLeft(bianma, 7 - bianma.length(), '0');
  2169. data += bianma;
  2170. //价格
  2171. std::string price = std::to_string((int)(atof(it->price.c_str()) * 100));
  2172. data += CLewaimaiString::BuZifuLeft(price, 6 - price.length(), '0');
  2173. //模式,称重
  2174. data += '0';
  2175. data += "000000";
  2176. //有效期
  2177. data += "000";
  2178. //店号
  2179. data += "01";
  2180. data += "000000000000000";
  2181. //皮重
  2182. data += "00";
  2183. data += "0000000000000000000000000000000B";
  2184. //商品区位码
  2185. std::string quweima = CLewaimaiString::GetQuweima(CLewaimaiString::UTF8ToUnicode(it->name));
  2186. data += quweima;
  2187. data += "CDE";
  2188. data += 0x0d;
  2189. data += 0x0a;
  2190. try
  2191. {
  2192. m_socket.write_some(boost::asio::buffer(data.c_str(), data.length()));
  2193. }
  2194. catch (const std::exception& e)
  2195. {
  2196. LOG_INFO("条码秤发送PLU信息失败,错误信息:" << e.what());
  2197. MessageBoxW(NULL, L"条码秤发送PLU信息失败", L"条码秤发送PLU信息失败", MB_OK);
  2198. m_socket.close();
  2199. return;
  2200. }
  2201. char buf[128] = { 0 };
  2202. boost::system::error_code error;
  2203. size_t len = m_socket.read_some(boost::asio::buffer(buf), error);
  2204. std::string result = buf;
  2205. LOG_INFO("发送PLU命令成功,返回信息:" << buf);
  2206. }
  2207. m_socket.close();
  2208. }
  2209. void CSettingPageUI::StartTongbuRejian()
  2210. {
  2211. std::thread(&CSettingPageUI::HandleTongbuRejian, this).detach();
  2212. }
  2213. void CSettingPageUI::HandleTongbuRejian()
  2214. {
  2215. boost::asio::io_context m_io;
  2216. boost::asio::ip::tcp::socket m_socket(m_io);
  2217. std::string ip = CSetting::GetInstance()->GetParam("setting_tiaomacheng_ip");
  2218. //初始化连接
  2219. try
  2220. {
  2221. boost::asio::ip::tcp::endpoint ep(boost::asio::ip::make_address(ip.c_str()), 4001);
  2222. m_socket.connect(ep);
  2223. }
  2224. catch (std::exception& e)
  2225. {
  2226. std::string err = e.what();
  2227. LOG_INFO("条码秤连接失败,IP地址:" << ip.c_str() << ",错误信息:" << err.c_str());
  2228. m_errinfo = L"条码秤连接失败,请检查IP设置,IP地址:" + CLewaimaiString::UTF8ToUnicode(ip);
  2229. MessageBoxW(NULL, m_errinfo.c_str(), L"条码秤连接失败", MB_OK);
  2230. return;
  2231. }
  2232. std::string data = "";
  2233. std::map<int, std::string> pluMap;
  2234. CSqlite3 sqlite;
  2235. std::vector<CFood> foods = sqlite.GetFoodForTiaomacheng();
  2236. for (std::vector<CFood>::iterator it = foods.begin(); it != foods.end(); it++)
  2237. {
  2238. //处理PLU;
  2239. int n_plu = atoi(it->weight_plu_code.c_str());
  2240. if (n_plu < 1)
  2241. {
  2242. //无效的plu
  2243. continue;;
  2244. }
  2245. if (n_plu > 142)
  2246. {
  2247. //也不处理
  2248. continue;
  2249. }
  2250. std::string plu = std::to_string(n_plu);
  2251. plu = CLewaimaiString::BuZifuLeft(plu, 4 - plu.length(), '0');
  2252. pluMap[n_plu] = plu;
  2253. }
  2254. //前36个
  2255. data += "!0L00A";
  2256. for (int i = 1; i <= 36; i++)
  2257. {
  2258. std::string s_i = std::to_string(i);
  2259. std::string buqi_i = CLewaimaiString::BuZifuLeft(s_i, 4 - s_i.length(), '0');
  2260. if (pluMap.find(i) != pluMap.end())
  2261. {
  2262. //说明有这个plu的
  2263. data += pluMap[i];
  2264. }
  2265. else
  2266. {
  2267. //没找到这个plu
  2268. data += buqi_i;
  2269. }
  2270. }
  2271. data += "B";
  2272. data += 0x0d;
  2273. data += 0x0a;
  2274. //37到72
  2275. data += "!0L01A";
  2276. for (int i = 37; i <= 72; i++)
  2277. {
  2278. std::string s_i = std::to_string(i);
  2279. std::string buqi_i = CLewaimaiString::BuZifuLeft(s_i, 4 - s_i.length(), '0');
  2280. if (pluMap.find(i) != pluMap.end())
  2281. {
  2282. //说明有这个plu的
  2283. data += pluMap[i];
  2284. }
  2285. else
  2286. {
  2287. //没找到这个plu
  2288. data += buqi_i;
  2289. }
  2290. }
  2291. data += "B";
  2292. data += 0x0d;
  2293. data += 0x0a;
  2294. //73到108
  2295. data += "!0L02A";
  2296. for (int i = 73; i <= 108; i++)
  2297. {
  2298. std::string s_i = std::to_string(i);
  2299. std::string buqi_i = CLewaimaiString::BuZifuLeft(s_i, 4 - s_i.length(), '0');
  2300. if (pluMap.find(i) != pluMap.end())
  2301. {
  2302. //说明有这个plu的
  2303. data += pluMap[i];
  2304. }
  2305. else
  2306. {
  2307. //没找到这个plu
  2308. data += buqi_i;
  2309. }
  2310. }
  2311. data += "B";
  2312. data += 0x0d;
  2313. data += 0x0a;
  2314. //109到142(108+36=144,最后2个空着)
  2315. data += "!0L03A";
  2316. for (int i = 109; i <= 142; i++)
  2317. {
  2318. std::string s_i = std::to_string(i);
  2319. std::string buqi_i = CLewaimaiString::BuZifuLeft(s_i, 4 - s_i.length(), '0');
  2320. if (pluMap.find(i) != pluMap.end())
  2321. {
  2322. //说明有这个plu的
  2323. data += pluMap[i];
  2324. }
  2325. else
  2326. {
  2327. //没找到这个plu
  2328. data += buqi_i;
  2329. }
  2330. }
  2331. //完了这里要补最后的0
  2332. data += "00000000";
  2333. data += "B";
  2334. data += 0x0d;
  2335. data += 0x0a;
  2336. //网口走这里
  2337. try
  2338. {
  2339. m_socket.write_some(boost::asio::buffer(data.c_str(), data.length()));
  2340. }
  2341. catch (const std::exception& e)
  2342. {
  2343. LOG_INFO("条码秤同步热键失败,错误信息:" << e.what());
  2344. MessageBoxW(NULL, L"条码秤同步热键失败", L"条码秤同步热键失败", MB_OK);
  2345. m_socket.close();
  2346. return;
  2347. }
  2348. char buf[128] = { 0 };
  2349. boost::system::error_code error;
  2350. size_t len = m_socket.read_some(boost::asio::buffer(buf), error);
  2351. std::string result = buf;
  2352. LOG_INFO("条码秤同步热键成功,返回信息:" << buf);
  2353. m_socket.close();
  2354. }
  2355. void CSettingPageUI::StartQiongkongPLU()
  2356. {
  2357. std::thread(&CSettingPageUI::HandleQiongkongPLU, this).detach();
  2358. }
  2359. void CSettingPageUI::HandleQiongkongPLU()
  2360. {
  2361. boost::asio::io_context m_io;
  2362. boost::asio::ip::tcp::socket m_socket(m_io);
  2363. std::string ip = CSetting::GetInstance()->GetParam("setting_tiaomacheng_ip");
  2364. //初始化连接
  2365. try
  2366. {
  2367. boost::asio::ip::tcp::endpoint ep(boost::asio::ip::make_address(ip.c_str()), 4001);
  2368. m_socket.connect(ep);
  2369. }
  2370. catch (std::exception& e)
  2371. {
  2372. std::string err = e.what();
  2373. LOG_INFO("条码秤连接失败,IP地址:" << ip.c_str() << ",错误信息:" << err.c_str());
  2374. m_errinfo = L"条码秤连接失败,请检查IP设置,IP地址:" + CLewaimaiString::UTF8ToUnicode(ip);
  2375. MessageBoxW(NULL, m_errinfo.c_str(), L"条码秤连接失败", MB_OK);
  2376. return;
  2377. }
  2378. if (1)
  2379. {
  2380. std::string data = "";
  2381. //先发送清空命令
  2382. data += "!0IA";
  2383. data += 0x0d;
  2384. data += 0x0a;
  2385. try
  2386. {
  2387. m_socket.write_some(boost::asio::buffer(data.c_str(), data.length()));
  2388. }
  2389. catch (const std::exception& e)
  2390. {
  2391. LOG_INFO("条码秤发送清空PLU失败,错误信息:" << e.what());
  2392. MessageBoxW(NULL, L"条码秤发送清空PLU失败", L"条码秤发送清空PLU失败", MB_OK);
  2393. m_socket.close();
  2394. return;
  2395. }
  2396. char buf[128] = { 0 };
  2397. boost::system::error_code error;
  2398. size_t len = m_socket.read_some(boost::asio::buffer(buf), error);
  2399. std::string result = buf;
  2400. LOG_INFO("发送清空PLU命令成功,返回信息:" << buf);
  2401. }
  2402. if (1)
  2403. {
  2404. std::string data = "";
  2405. ///再清除记录
  2406. data += "!0HA";
  2407. data += 0x0d;
  2408. data += 0x0a;
  2409. try
  2410. {
  2411. m_socket.write_some(boost::asio::buffer(data.c_str(), data.length()));
  2412. }
  2413. catch (const std::exception& e)
  2414. {
  2415. LOG_INFO("条码秤发送清空历史记录失败,错误信息:" << e.what());
  2416. MessageBoxW(NULL, L"条码秤发送清空历史记录失败", L"条码秤发送清空历史记录失败", MB_OK);
  2417. m_socket.close();
  2418. return;
  2419. }
  2420. char buf[128] = { 0 };
  2421. boost::system::error_code error;
  2422. size_t len = m_socket.read_some(boost::asio::buffer(buf), error);
  2423. std::string result = buf;
  2424. LOG_INFO("发送清空历史记录命令成功,返回信息:" << buf);
  2425. }
  2426. }
  2427. void CSettingPageUI::StartTongbu()
  2428. {
  2429. std::thread(&CSettingPageUI::HandleTongbu, this).detach();
  2430. }
  2431. void CSettingPageUI::HandleTongbu()
  2432. {
  2433. bool ret = CFoodHandle::GetInstance()->InitAllFood();
  2434. if (!ret)
  2435. {
  2436. m_tongbu_error = L"同步商品失败!";
  2437. PostMessage(m_pManager->GetPaintWindow(), WM_SETTING_TONGBU_FAIL, 0, 0);
  2438. return;
  2439. }
  2440. //获取店铺信息
  2441. std::wstring errmsg;
  2442. ret = CShopinfo::GetInstance()->UpdateOneShopinfo(errmsg);
  2443. if (!ret)
  2444. {
  2445. m_tongbu_error = errmsg;
  2446. PostMessage(m_pManager->GetPaintWindow(), WM_SETTING_TONGBU_FAIL, 0, 0);
  2447. return;
  2448. }
  2449. PostMessage(m_pManager->GetPaintWindow(), WM_SETTING_TONGBU_SUCCESS, 0, 0);
  2450. }
  2451. void CSettingPageUI::InitKuaijiejianShow()
  2452. {
  2453. //初始化快捷键的展示
  2454. UINT weixinshoukuan_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_weixinshoukuan_mod").c_str());
  2455. UINT weixinshoukuan_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_weixinshoukuan_vk").c_str());
  2456. CDuiString weixinshoukuan_info;
  2457. if (weixinshoukuan_mod == MOD_CONTROL)
  2458. {
  2459. weixinshoukuan_info.Format(_T("CTRL + %c"), weixinshoukuan_vk);
  2460. }
  2461. else if (weixinshoukuan_mod == MOD_ALT)
  2462. {
  2463. weixinshoukuan_info.Format(_T("ALT + %c"), weixinshoukuan_vk);
  2464. }
  2465. else if (weixinshoukuan_mod == MOD_SHIFT)
  2466. {
  2467. weixinshoukuan_info.Format(_T("SHIFT + %c"), weixinshoukuan_vk);
  2468. }
  2469. else if (weixinshoukuan_mod == 0)
  2470. {
  2471. if (weixinshoukuan_vk == 0)
  2472. {
  2473. weixinshoukuan_info = L"";
  2474. }
  2475. else
  2476. {
  2477. weixinshoukuan_info.Format(_T("F%d"), weixinshoukuan_vk - VK_F1 + 1);
  2478. }
  2479. }
  2480. CButtonUI* weixinshoukuan_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_weixinshoukuan")));
  2481. weixinshoukuan_edit->SetText(weixinshoukuan_info);
  2482. UINT huiyuandenglu_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_huiyuandenglu_mod").c_str());
  2483. UINT huiyuandenglu_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_huiyuandenglu_vk").c_str());
  2484. CDuiString huiyuandenglu_info;
  2485. if (huiyuandenglu_mod == MOD_CONTROL)
  2486. {
  2487. huiyuandenglu_info.Format(_T("CTRL + %c"), huiyuandenglu_vk);
  2488. }
  2489. else if (huiyuandenglu_mod == MOD_ALT)
  2490. {
  2491. huiyuandenglu_info.Format(_T("ALT + %c"), huiyuandenglu_vk);
  2492. }
  2493. else if (huiyuandenglu_mod == MOD_SHIFT)
  2494. {
  2495. huiyuandenglu_info.Format(_T("SHIFT + %c"), huiyuandenglu_vk);
  2496. }
  2497. else if (huiyuandenglu_mod == 0)
  2498. {
  2499. if (huiyuandenglu_vk == 0)
  2500. {
  2501. huiyuandenglu_info = L"";
  2502. }
  2503. else
  2504. {
  2505. huiyuandenglu_info.Format(_T("F%d"), huiyuandenglu_vk - VK_F1 + 1);
  2506. }
  2507. }
  2508. CButtonUI* huiyuandenglu_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_huiyuandenglu")));
  2509. huiyuandenglu_edit->SetText(huiyuandenglu_info);
  2510. UINT huiyuanshoukuan_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_huiyuanshoukuan_mod").c_str());
  2511. UINT huiyuanshoukuan_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_huiyuanshoukuan_vk").c_str());
  2512. CDuiString huiyuanshoukuan_info;
  2513. if (huiyuanshoukuan_mod == MOD_CONTROL)
  2514. {
  2515. huiyuanshoukuan_info.Format(_T("CTRL + %c"), huiyuanshoukuan_vk);
  2516. }
  2517. else if (huiyuanshoukuan_mod == MOD_ALT)
  2518. {
  2519. huiyuanshoukuan_info.Format(_T("ALT + %c"), huiyuanshoukuan_vk);
  2520. }
  2521. else if (huiyuanshoukuan_mod == MOD_SHIFT)
  2522. {
  2523. huiyuanshoukuan_info.Format(_T("SHIFT + %c"), huiyuanshoukuan_vk);
  2524. }
  2525. else if (huiyuanshoukuan_mod == 0)
  2526. {
  2527. if (huiyuanshoukuan_vk == 0)
  2528. {
  2529. huiyuanshoukuan_info = L"";
  2530. }
  2531. else
  2532. {
  2533. huiyuanshoukuan_info.Format(_T("F%d"), huiyuanshoukuan_vk - VK_F1 + 1);
  2534. }
  2535. }
  2536. CButtonUI* huiyuanshoukuan_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_huiyuanshoukuan")));
  2537. huiyuanshoukuan_edit->SetText(huiyuanshoukuan_info);
  2538. UINT xianjinshoukuan_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_xianjinshoukuan_mod").c_str());
  2539. UINT xianjinshoukuan_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_xianjinshoukuan_vk").c_str());
  2540. CDuiString xianjinshoukuan_info;
  2541. if (xianjinshoukuan_mod == MOD_CONTROL)
  2542. {
  2543. xianjinshoukuan_info.Format(_T("CTRL + %c"), xianjinshoukuan_vk);
  2544. }
  2545. else if (xianjinshoukuan_mod == MOD_ALT)
  2546. {
  2547. xianjinshoukuan_info.Format(_T("ALT + %c"), xianjinshoukuan_vk);
  2548. }
  2549. else if (xianjinshoukuan_mod == MOD_SHIFT)
  2550. {
  2551. xianjinshoukuan_info.Format(_T("SHIFT + %c"), xianjinshoukuan_vk);
  2552. }
  2553. else if (xianjinshoukuan_mod == 0)
  2554. {
  2555. if (xianjinshoukuan_vk == 0)
  2556. {
  2557. xianjinshoukuan_info = L"";
  2558. }
  2559. else
  2560. {
  2561. xianjinshoukuan_info.Format(_T("F%d"), xianjinshoukuan_vk - VK_F1 + 1);
  2562. }
  2563. }
  2564. CButtonUI* xianjinshoukuan_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_xianjinshoukuan")));
  2565. xianjinshoukuan_edit->SetText(xianjinshoukuan_info);
  2566. UINT qianxiang_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_qianxiang_mod").c_str());
  2567. UINT qianxiang_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_qianxiang_vk").c_str());
  2568. CDuiString qianxiang_info;
  2569. if (qianxiang_mod == MOD_CONTROL)
  2570. {
  2571. qianxiang_info.Format(_T("CTRL + %c"), qianxiang_vk);
  2572. }
  2573. else if (qianxiang_mod == MOD_ALT)
  2574. {
  2575. qianxiang_info.Format(_T("ALT + %c"), qianxiang_vk);
  2576. }
  2577. else if (qianxiang_mod == MOD_SHIFT)
  2578. {
  2579. qianxiang_info.Format(_T("SHIFT + %c"), qianxiang_vk);
  2580. }
  2581. else if (qianxiang_mod == 0)
  2582. {
  2583. if (qianxiang_vk == 0)
  2584. {
  2585. qianxiang_info = L"";
  2586. }
  2587. else
  2588. {
  2589. qianxiang_info.Format(_T("F%d"), qianxiang_vk - VK_F1 + 1);
  2590. }
  2591. }
  2592. CButtonUI* qianxiang_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_qianxiang")));
  2593. qianxiang_edit->SetText(qianxiang_info);
  2594. UINT logout_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_logout_mod").c_str());
  2595. UINT logout_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_logout_vk").c_str());
  2596. CDuiString logout_info;
  2597. if (logout_mod == MOD_CONTROL)
  2598. {
  2599. logout_info.Format(_T("CTRL + %c"), logout_vk);
  2600. }
  2601. else if (logout_mod == MOD_ALT)
  2602. {
  2603. logout_info.Format(_T("ALT + %c"), logout_vk);
  2604. }
  2605. else if (logout_mod == MOD_SHIFT)
  2606. {
  2607. logout_info.Format(_T("SHIFT + %c"), logout_vk);
  2608. }
  2609. else if (logout_mod == 0)
  2610. {
  2611. if (logout_vk == 0)
  2612. {
  2613. logout_info = L"";
  2614. }
  2615. else
  2616. {
  2617. logout_info.Format(_T("F%d"), logout_vk - VK_F1 + 1);
  2618. }
  2619. }
  2620. CButtonUI* logout_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_logout")));
  2621. logout_edit->SetText(logout_info);
  2622. UINT diandan_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_diandan_mod").c_str());
  2623. UINT diandan_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_diandan_vk").c_str());
  2624. CDuiString diandan_info;
  2625. if (diandan_mod == MOD_CONTROL)
  2626. {
  2627. diandan_info.Format(_T("CTRL + %c"), diandan_vk);
  2628. }
  2629. else if (diandan_mod == MOD_ALT)
  2630. {
  2631. diandan_info.Format(_T("ALT + %c"), diandan_vk);
  2632. }
  2633. else if (diandan_mod == MOD_SHIFT)
  2634. {
  2635. diandan_info.Format(_T("SHIFT + %c"), diandan_vk);
  2636. }
  2637. else if (diandan_mod == 0)
  2638. {
  2639. if (diandan_vk == 0)
  2640. {
  2641. diandan_info = L"";
  2642. }
  2643. else
  2644. {
  2645. diandan_info.Format(_T("F%d"), diandan_vk - VK_F1 + 1);
  2646. }
  2647. }
  2648. CButtonUI* diandan_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_diandan")));
  2649. diandan_edit->SetText(diandan_info);
  2650. UINT dingdan_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_dingdan_mod").c_str());
  2651. UINT dingdan_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_dingdan_vk").c_str());
  2652. CDuiString dingdan_info;
  2653. if (dingdan_mod == MOD_CONTROL)
  2654. {
  2655. dingdan_info.Format(_T("CTRL + %c"), dingdan_vk);
  2656. }
  2657. else if (dingdan_mod == MOD_ALT)
  2658. {
  2659. dingdan_info.Format(_T("ALT + %c"), dingdan_vk);
  2660. }
  2661. else if (dingdan_mod == MOD_SHIFT)
  2662. {
  2663. dingdan_info.Format(_T("SHIFT + %c"), dingdan_vk);
  2664. }
  2665. else if (dingdan_mod == 0)
  2666. {
  2667. if (dingdan_vk == 0)
  2668. {
  2669. dingdan_info = L"";
  2670. }
  2671. else
  2672. {
  2673. dingdan_info.Format(_T("F%d"), dingdan_vk - VK_F1 + 1);
  2674. }
  2675. }
  2676. CButtonUI* dingdan_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_dingdan")));
  2677. dingdan_edit->SetText(dingdan_info);
  2678. UINT huiyuan_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_huiyuan_mod").c_str());
  2679. UINT huiyuan_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_huiyuan_vk").c_str());
  2680. CDuiString huiyuan_info;
  2681. if (huiyuan_mod == MOD_CONTROL)
  2682. {
  2683. huiyuan_info.Format(_T("CTRL + %c"), huiyuan_vk);
  2684. }
  2685. else if (huiyuan_mod == MOD_ALT)
  2686. {
  2687. huiyuan_info.Format(_T("ALT + %c"), huiyuan_vk);
  2688. }
  2689. else if (huiyuan_mod == MOD_SHIFT)
  2690. {
  2691. huiyuan_info.Format(_T("SHIFT + %c"), huiyuan_vk);
  2692. }
  2693. else if (huiyuan_mod == 0)
  2694. {
  2695. if (huiyuan_vk == 0)
  2696. {
  2697. huiyuan_info = L"";
  2698. }
  2699. else
  2700. {
  2701. huiyuan_info.Format(_T("F%d"), huiyuan_vk - VK_F1 + 1);
  2702. }
  2703. }
  2704. CButtonUI* huiyuan_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_huiyuan")));
  2705. huiyuan_edit->SetText(huiyuan_info);
  2706. UINT baobiao_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_baobiao_mod").c_str());
  2707. UINT baobiao_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_baobiao_vk").c_str());
  2708. CDuiString baobiao_info;
  2709. if (baobiao_mod == MOD_CONTROL)
  2710. {
  2711. baobiao_info.Format(_T("CTRL + %c"), baobiao_vk);
  2712. }
  2713. else if (baobiao_mod == MOD_ALT)
  2714. {
  2715. baobiao_info.Format(_T("ALT + %c"), baobiao_vk);
  2716. }
  2717. else if (baobiao_mod == MOD_SHIFT)
  2718. {
  2719. baobiao_info.Format(_T("SHIFT + %c"), baobiao_vk);
  2720. }
  2721. else if (baobiao_mod == 0)
  2722. {
  2723. if (baobiao_vk == 0)
  2724. {
  2725. baobiao_info = L"";
  2726. }
  2727. else
  2728. {
  2729. baobiao_info.Format(_T("F%d"), baobiao_vk - VK_F1 + 1);
  2730. }
  2731. }
  2732. CButtonUI* baobiao_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_baobiao")));
  2733. baobiao_edit->SetText(baobiao_info);
  2734. UINT jiaoban_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_jiaoban_mod").c_str());
  2735. UINT jiaoban_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_jiaoban_vk").c_str());
  2736. CDuiString jiaoban_info;
  2737. if (jiaoban_mod == MOD_CONTROL)
  2738. {
  2739. jiaoban_info.Format(_T("CTRL + %c"), jiaoban_vk);
  2740. }
  2741. else if (jiaoban_mod == MOD_ALT)
  2742. {
  2743. jiaoban_info.Format(_T("ALT + %c"), jiaoban_vk);
  2744. }
  2745. else if (jiaoban_mod == MOD_SHIFT)
  2746. {
  2747. jiaoban_info.Format(_T("SHIFT + %c"), jiaoban_vk);
  2748. }
  2749. else if (jiaoban_mod == 0)
  2750. {
  2751. if (jiaoban_vk == 0)
  2752. {
  2753. jiaoban_info = L"";
  2754. }
  2755. else
  2756. {
  2757. jiaoban_info.Format(_T("F%d"), jiaoban_vk - VK_F1 + 1);
  2758. }
  2759. }
  2760. CButtonUI* jiaoban_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_jiaoban")));
  2761. jiaoban_edit->SetText(jiaoban_info);
  2762. UINT shezhi_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_shezhi_mod").c_str());
  2763. UINT shezhi_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_shezhi_vk").c_str());
  2764. CDuiString shezhi_info;
  2765. if (shezhi_mod == MOD_CONTROL)
  2766. {
  2767. shezhi_info.Format(_T("CTRL + %c"), shezhi_vk);
  2768. }
  2769. else if (shezhi_mod == MOD_ALT)
  2770. {
  2771. shezhi_info.Format(_T("ALT + %c"), shezhi_vk);
  2772. }
  2773. else if (shezhi_mod == MOD_SHIFT)
  2774. {
  2775. shezhi_info.Format(_T("SHIFT + %c"), shezhi_vk);
  2776. }
  2777. else if (shezhi_mod == 0)
  2778. {
  2779. if (shezhi_vk == 0)
  2780. {
  2781. shezhi_info = L"";
  2782. }
  2783. else
  2784. {
  2785. shezhi_info.Format(_T("F%d"), shezhi_vk - VK_F1 + 1);
  2786. }
  2787. }
  2788. CButtonUI* shezhi_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_shezhi")));
  2789. shezhi_edit->SetText(shezhi_info);
  2790. UINT shangpin_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_shangpin_mod").c_str());
  2791. UINT shangpin_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_shangpin_vk").c_str());
  2792. CDuiString shangpin_info;
  2793. if (shangpin_mod == MOD_CONTROL)
  2794. {
  2795. shangpin_info.Format(_T("CTRL + %c"), shangpin_vk);
  2796. }
  2797. else if (shangpin_mod == MOD_ALT)
  2798. {
  2799. shangpin_info.Format(_T("ALT + %c"), shangpin_vk);
  2800. }
  2801. else if (shangpin_mod == MOD_SHIFT)
  2802. {
  2803. shangpin_info.Format(_T("SHIFT + %c"), shangpin_vk);
  2804. }
  2805. else if (shangpin_mod == 0)
  2806. {
  2807. if (shangpin_vk == 0)
  2808. {
  2809. shangpin_info = L"";
  2810. }
  2811. else
  2812. {
  2813. shangpin_info.Format(_T("F%d"), shangpin_vk - VK_F1 + 1);
  2814. }
  2815. }
  2816. CButtonUI* shangpin_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_shangpin")));
  2817. shangpin_edit->SetText(shangpin_info);
  2818. UINT kucun_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_kucun_mod").c_str());
  2819. UINT kucun_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_kucun_vk").c_str());
  2820. CDuiString kucun_info;
  2821. if (kucun_mod == MOD_CONTROL)
  2822. {
  2823. kucun_info.Format(_T("CTRL + %c"), kucun_vk);
  2824. }
  2825. else if (kucun_mod == MOD_ALT)
  2826. {
  2827. kucun_info.Format(_T("ALT + %c"), kucun_vk);
  2828. }
  2829. else if (kucun_mod == MOD_SHIFT)
  2830. {
  2831. kucun_info.Format(_T("SHIFT + %c"), kucun_vk);
  2832. }
  2833. else if (kucun_mod == 0)
  2834. {
  2835. if (kucun_vk == 0)
  2836. {
  2837. kucun_info = L"";
  2838. }
  2839. else
  2840. {
  2841. kucun_info.Format(_T("F%d"), kucun_vk - VK_F1 + 1);
  2842. }
  2843. }
  2844. CButtonUI* kucun_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_kucun")));
  2845. kucun_edit->SetText(kucun_info);
  2846. UINT caigou_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_caigou_mod").c_str());
  2847. UINT caigou_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_caigou_vk").c_str());
  2848. CDuiString caigou_info;
  2849. if (caigou_mod == MOD_CONTROL)
  2850. {
  2851. caigou_info.Format(_T("CTRL + %c"), caigou_vk);
  2852. }
  2853. else if (caigou_mod == MOD_ALT)
  2854. {
  2855. caigou_info.Format(_T("ALT + %c"), caigou_vk);
  2856. }
  2857. else if (caigou_mod == MOD_SHIFT)
  2858. {
  2859. caigou_info.Format(_T("SHIFT + %c"), caigou_vk);
  2860. }
  2861. else if (caigou_mod == 0)
  2862. {
  2863. if (caigou_vk == 0)
  2864. {
  2865. caigou_info = L"";
  2866. }
  2867. else
  2868. {
  2869. caigou_info.Format(_T("F%d"), caigou_vk - VK_F1 + 1);
  2870. }
  2871. }
  2872. CButtonUI* caigou_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_caigou")));
  2873. caigou_edit->SetText(caigou_info);
  2874. UINT zhuotai_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_zhuotai_mod").c_str());
  2875. UINT zhuotai_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_zhuotai_vk").c_str());
  2876. CDuiString zhuotai_info;
  2877. if (zhuotai_mod == MOD_CONTROL)
  2878. {
  2879. zhuotai_info.Format(_T("CTRL + %c"), zhuotai_vk);
  2880. }
  2881. else if (zhuotai_mod == MOD_ALT)
  2882. {
  2883. zhuotai_info.Format(_T("ALT + %c"), zhuotai_vk);
  2884. }
  2885. else if (zhuotai_mod == MOD_SHIFT)
  2886. {
  2887. zhuotai_info.Format(_T("SHIFT + %c"), zhuotai_vk);
  2888. }
  2889. else if (zhuotai_mod == 0)
  2890. {
  2891. if (zhuotai_vk == 0)
  2892. {
  2893. zhuotai_info = L"";
  2894. }
  2895. else
  2896. {
  2897. zhuotai_info.Format(_T("F%d"), zhuotai_vk - VK_F1 + 1);
  2898. }
  2899. }
  2900. CButtonUI* zhuotai_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_zhuotai")));
  2901. zhuotai_edit->SetText(zhuotai_info);
  2902. UINT shoukuan_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_shoukuan_mod").c_str());
  2903. UINT shoukuan_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_shoukuan_vk").c_str());
  2904. CDuiString shoukuan_info;
  2905. if (shoukuan_mod == MOD_CONTROL)
  2906. {
  2907. shoukuan_info.Format(_T("CTRL + %c"), shoukuan_vk);
  2908. }
  2909. else if (shoukuan_mod == MOD_ALT)
  2910. {
  2911. shoukuan_info.Format(_T("ALT + %c"), shoukuan_vk);
  2912. }
  2913. else if (shoukuan_mod == MOD_SHIFT)
  2914. {
  2915. shoukuan_info.Format(_T("SHIFT + %c"), shoukuan_vk);
  2916. }
  2917. else if (shoukuan_mod == 0)
  2918. {
  2919. if (shoukuan_vk == 0)
  2920. {
  2921. shoukuan_info = L"";
  2922. }
  2923. else
  2924. {
  2925. shoukuan_info.Format(_T("F%d"), shoukuan_vk - VK_F1 + 1);
  2926. }
  2927. }
  2928. CButtonUI* shoukuan_edit = static_cast<CButtonUI*>(this->FindSubControl(_T("setting_kuaijiejian_page_btn_tiaozhuan_shoukuan")));
  2929. shoukuan_edit->SetText(shoukuan_info);
  2930. }