| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027 |
- #include "../pch/pch.h"
- #include "CMainWnd.h"
- #include "CLoginWnd.h"
- #include "CChufangSettingWnd.h"
- #include "../control/ControlEx.h"
- #include "../control/CWaimaiOrderInfoUI.h"
- #include "../network/CMessagePush.h"
- #include "CWaimaiOrderFailReasonWnd.h"
- void CMainWnd::Init()
- {
- m_pCloseBtn = static_cast<CButtonUI*>(m_pm.FindControl(_T("closebtn")));
- m_pMaxBtn = static_cast<CButtonUI*>(m_pm.FindControl(_T("maxbtn")));
- m_pRestoreBtn = static_cast<CButtonUI*>(m_pm.FindControl(_T("restorebtn")));
- m_pMinBtn = static_cast<CButtonUI*>(m_pm.FindControl(_T("minbtn")));
- //初始化外卖订单列表
- COptionUI* waimai_tab = static_cast<COptionUI*>(m_pm.FindControl(_T("main_waimai")));
- if(waimai_tab->IsSelected())
- {
- OrderListUI* orderlist = static_cast<OrderListUI*>(m_pm.FindControl(_T("orderlist")));
- orderlist->Refresh();
- }
- //初始化设置中心的状态
- InitSettingStatus();
- //登录成功,启动消息和任务处理
- m_push = new CMessagePush(m_hWnd);
- m_push->Start();
- }
- LRESULT CMainWnd::OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
- {
- LONG styleValue = ::GetWindowLong(*this, GWL_STYLE);
- styleValue &= ~WS_CAPTION;
- ::SetWindowLong(*this, GWL_STYLE, styleValue | WS_CLIPSIBLINGS | WS_CLIPCHILDREN);
- m_pm.Init(m_hWnd);
- CDialogBuilder builder;
- CDialogBuilderCallbackEx cb;
- CControlUI* pRoot = builder.Create(_T("main.xml"), (UINT)0, &cb, &m_pm);
- ASSERT(pRoot && "Failed to parse XML");
- m_pm.AttachDialog(pRoot);
- m_pm.AddNotifier(this);
- Init();
- return 0;
- }
- void CMainWnd::Notify(TNotifyUI& msg)
- {
- if(msg.sType == _T("windowinit"))
- {
- OnPrepare();
- }
- else if(msg.sType == _T("click"))
- {
- HandleClickMsg(msg);
- }
- else if(msg.sType == _T("selectchanged"))
- {
- HandleSelectChangeMsg(msg);
- }
- else if(msg.sType == _T("itemclick"))
- {
- }
- else if(msg.sType == _T("itemactivate"))
- {
- }
- else if(msg.sType == _T("itemselect"))
- {
- HandleItemSelectMsg(msg);
- }
- }
- void CMainWnd::HandleClickMsg(TNotifyUI& msg)
- {
- if(msg.pSender == m_pCloseBtn)
- {
- if(CSetting::GetParam("setting_is_close_min") == "1")
- {
- AddTrayIcon();
- }
- else
- {
- PostQuitMessage(0);
- }
- return;
- }
- else if(msg.pSender == m_pMinBtn)
- {
- SendMessage(WM_SYSCOMMAND, SC_MINIMIZE, 0);
- return;
- }
- else if(msg.pSender == m_pMaxBtn)
- {
- SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE, 0);
- return;
- }
- else if(msg.pSender == m_pRestoreBtn)
- {
- SendMessage(WM_SYSCOMMAND, SC_RESTORE, 0);
- return;
- }
- CDuiString name = msg.pSender->GetName();
- if(name == _T("quitbtn"))
- {
- /*Close()*/PostQuitMessage(0); // 因为activex的原因,使用close可能会出现错误
- }
- else if(name == _T("waimai_order_list_print"))
- {
- CWaimaiOrderItemUI* item = static_cast<CWaimaiOrderItemUI*>(msg.pSender->GetParent()->GetParent());
- std::string waimai_order_id = item->getOrderID();
- std::string waimai_order_no = item->getOrderNo();
- m_push->AddPinter(waimai_order_id, waimai_order_no, 2);
- }
- else if(name == _T("waimai_order_list_confirme"))
- {
- CWaimaiOrderItemUI* item = static_cast<CWaimaiOrderItemUI*>(msg.pSender->GetParent()->GetParent());
- std::string waimai_order_id = item->getOrderID();
- CWaimaiOrder order;
- bool ret = order.ConfirmeOrder(waimai_order_id);
- if(ret)
- {
- //如果确认成功,将被确认的订单删除掉
- OrderListUI* orderlist = static_cast<OrderListUI*>(m_pm.FindControl(_T("orderlist")));
- int index = orderlist->GetItemIndex(item);
- orderlist->RemoveAt(index);
- }
- }
- else if(name == _T("waimai_order_list_success"))
- {
- CWaimaiOrderItemUI* item = static_cast<CWaimaiOrderItemUI*>(msg.pSender->GetParent()->GetParent());
- std::string waimai_order_id = item->getOrderID();
- CWaimaiOrder order;
- bool ret = order.SuccessOrder(waimai_order_id);
- if(ret)
- {
- //如果确认成功,将被确认的订单删除掉
- OrderListUI* orderlist = static_cast<OrderListUI*>(m_pm.FindControl(_T("orderlist")));
- int index = orderlist->GetItemIndex(item);
- orderlist->RemoveAt(index);
- }
- }
- else if(name == _T("waimai_order_list_fail"))
- {
- //外卖订单的打印
- CWaimaiOrderItemUI* item = static_cast<CWaimaiOrderItemUI*>(msg.pSender->GetParent()->GetParent());
- std::string waimai_order_id = item->getOrderID();
- CWaimaiOrderFailReasonWnd* pWaimaiFailFrame = new CWaimaiOrderFailReasonWnd();
- pWaimaiFailFrame->Create(this->GetHWND(), _T(""), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
- pWaimaiFailFrame->SetIcon(IDI_ICON_DUILIB);
- pWaimaiFailFrame->CenterWindow();
- UINT ret = pWaimaiFailFrame->ShowModal();
- if(ret == IDOK)
- {
- std::string sReason = pWaimaiFailFrame->getReason();
- CWaimaiOrder order;
- bool ret = order.FailOrder(waimai_order_id, sReason);
- if(ret)
- {
- //如果设为失败成功,将被设为失败的订单删除掉
- OrderListUI* orderlist = static_cast<OrderListUI*>(m_pm.FindControl(_T("orderlist")));
- int index = orderlist->GetItemIndex(item);
- orderlist->RemoveAt(index);
- }
- }
- delete pWaimaiFailFrame;
- }
- else if(name == _T("waimai_order_list_agree"))
- {
- CWaimaiOrderItemUI* item = static_cast<CWaimaiOrderItemUI*>(msg.pSender->GetParent()->GetParent());
- std::string waimai_order_id = item->getOrderID();
- CWaimaiOrder order;
- bool ret = order.AgreeRefund(waimai_order_id);
- if(ret)
- {
- //同意退款之后,订单变为失败状态
- OrderListUI* orderlist = static_cast<OrderListUI*>(m_pm.FindControl(_T("orderlist")));
- int index = orderlist->GetItemIndex(item);
- orderlist->RemoveAt(index);
- }
- }
- else if(name == _T("waimai_order_list_disagree"))
- {
- CWaimaiOrderItemUI* item = static_cast<CWaimaiOrderItemUI*>(msg.pSender->GetParent()->GetParent());
- std::string waimai_order_id = item->getOrderID();
- CWaimaiOrder order;
- bool ret = order.DisagreeRefund(waimai_order_id);
- if(ret)
- {
- //不同意退款,订单还是退款中,等待第三方客服处理
- //OrderListUI* orderlist = static_cast<OrderListUI*>(m_pm.FindControl(_T("orderlist")));
- //int index = orderlist->GetItemIndex(item);
- //orderlist->RemoveAt(index);
- }
- }
- else if(name == _T("waimai_order_list_info"))
- {
- CWaimaiOrderItemUI* item = static_cast<CWaimaiOrderItemUI*>(msg.pSender->GetParent()->GetParent());
- std::string waimai_order_id = item->getOrderID();
- std::string waimai_order_no = item->getOrderNo();
- //请求服务器,获取订单数据
- CWaimaiOrder order;
- order.InitData(waimai_order_id, waimai_order_no);
- //刷新订单详情页数据
- CWaimaiOrderInfoUI* order_info_page = static_cast<CWaimaiOrderInfoUI*>(m_pm.FindControl(_T("waimaiorder_info_page")));
- order_info_page->SetDate(order);
- order_info_page->Refresh(order);
- //显示订单详情页的内容
- CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(m_pm.FindControl(_T("switch")));
- if(pControl && pControl->GetCurSel() != 1)
- {
- pControl->SelectItem(1);
- }
- }
- else if(name == _T("waimai_order_list_last"))
- {
- OrderListUI* orderlist = static_cast<OrderListUI*>(m_pm.FindControl(_T("orderlist")));
- orderlist->LastPage();
- }
- else if(name == _T("waimai_order_list_next"))
- {
- OrderListUI* orderlist = static_cast<OrderListUI*>(m_pm.FindControl(_T("orderlist")));
- orderlist->NextPage();
- }
- else if(name == _T("waimai_order_list_refresh"))
- {
- OrderListUI* orderlist = static_cast<OrderListUI*>(m_pm.FindControl(_T("orderlist")));
- orderlist->Refresh();
- }
- else if(name == _T("waimai_order_info_page_return"))
- {
- CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(m_pm.FindControl(_T("switch")));
- if(pControl && pControl->GetCurSel() != 0)
- {
- pControl->SelectItem(0);
- }
- //刷新当前列表
- OrderListUI* orderlist = static_cast<OrderListUI*>(m_pm.FindControl(_T("orderlist")));
- orderlist->Refresh();
- }
- else if(name == _T("waimai_order_info_page_print"))
- {
- CWaimaiOrderInfoUI* order_info_page = static_cast<CWaimaiOrderInfoUI*>(m_pm.FindControl(_T("waimaiorder_info_page")));
- m_push->AddPinter(order_info_page->m_order.m_order_id, order_info_page->m_order.m_order_no, 2);
- }
- else if(name == _T("waimai_order_info_page_confirme"))
- {
- CWaimaiOrderInfoUI* order_info_page = static_cast<CWaimaiOrderInfoUI*>(m_pm.FindControl(_T("waimaiorder_info_page")));
- std::string waimai_order_id = order_info_page->m_order.m_order_id;
- std::string waimai_order_no = order_info_page->m_order.m_order_no;
- CWaimaiOrder order;
- bool ret = order.ConfirmeOrder(waimai_order_id);
- if(ret)
- {
- //确认成功,这里怎么处理
- //请求服务器,获取订单数据
- CWaimaiOrder new_order;
- new_order.InitData(waimai_order_id, waimai_order_no);
- //刷新订单详情页数据
- order_info_page->SetDate(new_order);
- order_info_page->Refresh(new_order);
- }
- }
- else if(name == _T("waimai_order_info_page_success"))
- {
- CWaimaiOrderInfoUI* order_info_page = static_cast<CWaimaiOrderInfoUI*>(m_pm.FindControl(_T("waimaiorder_info_page")));
- std::string waimai_order_id = order_info_page->m_order.m_order_id;
- std::string waimai_order_no = order_info_page->m_order.m_order_no;
- CWaimaiOrder order;
- bool ret = order.SuccessOrder(waimai_order_id);
- if(ret)
- {
- //订单设为成功,这里怎么处理
- //请求服务器,获取订单数据
- CWaimaiOrder new_order;
- new_order.InitData(waimai_order_id, waimai_order_no);
- //刷新订单详情页数据
- order_info_page->SetDate(new_order);
- order_info_page->Refresh(new_order);
- }
- }
- else if(name == _T("waimai_order_info_page_fail"))
- {
- CWaimaiOrderInfoUI* order_info_page = static_cast<CWaimaiOrderInfoUI*>(m_pm.FindControl(_T("waimaiorder_info_page")));
- std::string waimai_order_id = order_info_page->m_order.m_order_id;
- std::string waimai_order_no = order_info_page->m_order.m_order_no;
- CWaimaiOrderFailReasonWnd* pWaimaiFailFrame = new CWaimaiOrderFailReasonWnd();
- pWaimaiFailFrame->Create(this->GetHWND(), _T(""), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
- pWaimaiFailFrame->SetIcon(IDI_ICON_DUILIB);
- pWaimaiFailFrame->CenterWindow();
- UINT ret = pWaimaiFailFrame->ShowModal();
- if(ret == IDOK)
- {
- std::string sReason = pWaimaiFailFrame->getReason();
- CWaimaiOrder order;
- bool ret = order.FailOrder(waimai_order_id, sReason);
- if(ret)
- {
- //订单设为失败,这里怎么处理
- //请求服务器,获取订单数据
- CWaimaiOrder new_order;
- new_order.InitData(waimai_order_id, waimai_order_no);
- //刷新订单详情页数据
- order_info_page->SetDate(new_order);
- order_info_page->Refresh(new_order);
- }
- }
- delete pWaimaiFailFrame;
- }
- else if(name == _T("waimai_order_info_page_agree"))
- {
- CWaimaiOrderInfoUI* order_info_page = static_cast<CWaimaiOrderInfoUI*>(m_pm.FindControl(_T("waimaiorder_info_page")));
- std::string waimai_order_id = order_info_page->m_order.m_order_id;
- std::string waimai_order_no = order_info_page->m_order.m_order_no;
- CWaimaiOrder order;
- bool ret = order.AgreeRefund(waimai_order_id);
- if(ret)
- {
- //订单设为成功,这里怎么处理
- //请求服务器,获取订单数据
- CWaimaiOrder new_order;
- new_order.InitData(waimai_order_id, waimai_order_no);
- //刷新订单详情页数据
- order_info_page->SetDate(new_order);
- order_info_page->Refresh(new_order);
- }
- }
- else if(name == _T("waimai_order_info_page_disagree"))
- {
- CWaimaiOrderInfoUI* order_info_page = static_cast<CWaimaiOrderInfoUI*>(m_pm.FindControl(_T("waimaiorder_info_page")));
- std::string waimai_order_id = order_info_page->m_order.m_order_id;
- std::string waimai_order_no = order_info_page->m_order.m_order_no;
- CWaimaiOrder order;
- bool ret = order.DisagreeRefund(waimai_order_id);
- if(ret)
- {
- //订单设为成功,这里怎么处理
- //请求服务器,获取订单数据
- CWaimaiOrder new_order;
- new_order.InitData(waimai_order_id, waimai_order_no);
- //刷新订单详情页数据
- order_info_page->SetDate(new_order);
- order_info_page->Refresh(new_order);
- }
- }
- //开始处理设置页面的
- else if(name == _T("setting_is_new_waimai_voice"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_is_new_waimai_voice")));
- //注意这里的IsSelected如果为true,表示的是点击前为true,而不是点击后为true,所以这里设置状态要反过来
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_is_new_waimai_voice", "0");
- }
- else
- {
- CSetting::SetParam("setting_is_new_waimai_voice", "1");
- }
- }
- else if(name == _T("setting_is_new_waimai_autoconfirm"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_is_new_waimai_autoconfirm")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_is_new_waimai_autoconfirm", "0");
- }
- else
- {
- CSetting::SetParam("setting_is_new_waimai_autoconfirm", "1");
- }
- }
- else if(name == _T("setting_is_new_waimai_dialog"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_is_new_waimai_dialog")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_is_new_waimai_dialog", "0");
- }
- else
- {
- CSetting::SetParam("setting_is_new_waimai_dialog", "1");
- }
- }
- else if(name == _T("setting_is_new_waimai_printer"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_is_new_waimai_printer")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_is_new_waimai_printer", "0");
- }
- else
- {
- CSetting::SetParam("setting_is_new_waimai_printer", "1");
- }
- }
- else if(name == _T("setting_printer_wangkouk_save_btn"))
- {
- CEditUI* wangkou_ip = static_cast<CEditUI*>(m_pm.FindControl(_T("setting_printer_wangkou_ip")));
- wstring ip = wangkou_ip->GetText();
- CSetting::SetParam("setting_printer_wangkou_ip", CLewaimaiString::UnicodeToUTF8(ip));
- }
- else if(name == _T("setting_printer_quhuo_big"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_quhuo_big")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_printer_quhuo_big", "0");
- }
- else
- {
- CSetting::SetParam("setting_printer_quhuo_big", "1");
- }
- }
- else if(name == _T("setting_printer_dingdanhao_big"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_dingdanhao_big")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_printer_dingdanhao_big", "0");
- }
- else
- {
- CSetting::SetParam("setting_printer_dingdanhao_big", "1");
- }
- }
- else if(name == _T("setting_printer_xiadanshijian_big"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_xiadanshijian_big")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_printer_xiadanshijian_big", "0");
- }
- else
- {
- CSetting::SetParam("setting_printer_xiadanshijian_big", "1");
- }
- }
- else if(name == _T("setting_printer_peisongshijian_big"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_peisongshijian_big")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_printer_peisongshijian_big", "0");
- }
- else
- {
- CSetting::SetParam("setting_printer_peisongshijian_big", "1");
- }
- }
- else if(name == _T("setting_printer_name_big"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_name_big")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_printer_name_big", "0");
- }
- else
- {
- CSetting::SetParam("setting_printer_name_big", "1");
- }
- }
- else if(name == _T("setting_printer_phone_big"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_phone_big")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_printer_phone_big", "0");
- }
- else
- {
- CSetting::SetParam("setting_printer_phone_big", "1");
- }
- }
- else if(name == _T("setting_printer_address_big"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_address_big")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_printer_address_big", "0");
- }
- else
- {
- CSetting::SetParam("setting_printer_address_big", "1");
- }
- }
- else if(name == _T("setting_printer_shangpin_big"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_shangpin_big")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_printer_shangpin_big", "0");
- }
- else
- {
- CSetting::SetParam("setting_printer_shangpin_big", "1");
- }
- }
- else if(name == _T("setting_printer_memo_big"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_memo_big")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_printer_memo_big", "0");
- }
- else
- {
- CSetting::SetParam("setting_printer_memo_big", "1");
- }
- }
- else if(name == _T("setting_printer_price_big"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_price_big")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_printer_price_big", "0");
- }
- else
- {
- CSetting::SetParam("setting_printer_price_big", "1");
- }
- }
- else if(name == _T("setting_printer_pay_big"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_pay_big")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_printer_pay_big", "0");
- }
- else
- {
- CSetting::SetParam("setting_printer_pay_big", "1");
- }
- }
- else if(name == _T("setting_is_new_waimai_chufang_printer"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_is_new_waimai_chufang_printer")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_is_new_waimai_chufang_printer", "0");
- }
- else
- {
- CSetting::SetParam("setting_is_new_waimai_chufang_printer", "1");
- }
- }
- else if(name == _T("setting_new_chufang_printer_btn"))
- {
- CChufangSettingWnd* pChufangFrame = new CChufangSettingWnd(1);
- if(pChufangFrame != NULL)
- {
- pChufangFrame->Create(this->GetHWND(), _T(""), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
- pChufangFrame->SetIcon(IDI_ICON_DUILIB);
- pChufangFrame->CenterWindow();
- UINT ret = pChufangFrame->ShowModal();
- if(ret == IDOK)
- {
- //这个时候是点击保存返回了,厨房打印机的数据已经建立好了,这个时候刷新表格的显示
- CListUI* pPrinterList = static_cast<CListUI*>(m_pm.FindControl(_T("setting_chufang_printer_list")));
- //把最后一个厨房打印机取出来
- ChufangPrinter newPrinter = CSetting::getLastChufangPrinter();
- CDialogBuilder builder;
- CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(builder.Create(_T("setting_chufang_printer_item.xml"), (UINT)0, NULL, &m_pm));
- CLabelUI* pName = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
- pName->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.name).c_str());
- CLabelUI* pIP = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_ip")));
- pIP->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.ip).c_str());
- CLabelUI* pGuige = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_guige")));
- if(newPrinter.guige == "58")
- {
- pGuige->SetText(L"58mm");
- }
- else
- {
- pGuige->SetText(L"80mm");
- }
- CLabelUI* pFendan = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_fendan")));
- if(newPrinter.fendan == "1")
- {
- pFendan->SetText(L"是");
- }
- else
- {
- pFendan->SetText(L"否");
- }
- CLabelUI* pFenlei = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei")));
- if(newPrinter.fenlei == "1")
- {
- pFenlei->SetText(L"是");
- }
- else
- {
- pFenlei->SetText(L"否");
- }
- pEle->AddCustomAttribute(L"date", CLewaimaiString::UTF8ToUnicode(newPrinter.date).c_str());
- pPrinterList->Add(pEle);
- }
- }
- }
- else if(name == _T("setting_is_auto_start"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_is_auto_start")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_is_auto_start", "0");
- CSystem::cancelAutoStart();
- }
- else
- {
- CSetting::SetParam("setting_is_auto_start", "1");
- CSystem::autostart();
- }
- }
- else if(name == _T("setting_is_auto_login"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_is_auto_login")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_is_auto_login", "0");
- }
- else
- {
- CSetting::SetParam("setting_is_auto_login", "1");
- }
- }
- else if(name == _T("setting_is_close_min"))
- {
- CCheckBoxUI* box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_is_close_min")));
- if(box->IsSelected())
- {
- CSetting::SetParam("setting_is_close_min", "0");
- }
- else
- {
- CSetting::SetParam("setting_is_close_min", "1");
- }
- }
- else if(name == _T("setting_chufang_printer_item_update_btn"))
- {
- CListUI* pPrinterList = static_cast<CListUI*>(m_pm.FindControl(_T("setting_chufang_printer_list")));
- CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(msg.pSender->GetParent()->GetParent()->GetParent());
- wstring date = pEle->GetCustomAttribute(L"date");
- CChufangSettingWnd* pChufangFrame = new CChufangSettingWnd(2);
- pChufangFrame->SetPrinterDate(CLewaimaiString::UnicodeToUTF8(date));
- if(pChufangFrame != NULL)
- {
- pChufangFrame->Create(this->GetHWND(), _T(""), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
- pChufangFrame->SetIcon(IDI_ICON_DUILIB);
- pChufangFrame->CenterWindow();
- UINT ret = pChufangFrame->ShowModal();
- if(ret == IDOK)
- {
- //这个时候是点击保存返回了,厨房打印机的数据已经建立好了,这个时候刷新表格的显示
- CListUI* pPrinterList = static_cast<CListUI*>(m_pm.FindControl(_T("setting_chufang_printer_list")));
- ChufangPrinter newPrinter = CSetting::GetChufangPrinter(CLewaimaiString::UnicodeToUTF8(date));
- CLabelUI* pName = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
- pName->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.name).c_str());
- CLabelUI* pIP = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_ip")));
- pIP->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.ip).c_str());
- CLabelUI* pGuige = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_guige")));
- if(newPrinter.guige == "58")
- {
- pGuige->SetText(L"58mm");
- }
- else
- {
- pGuige->SetText(L"80mm");
- }
- CLabelUI* pFendan = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_fendan")));
- if(newPrinter.fendan == "1")
- {
- pFendan->SetText(L"是");
- }
- else
- {
- pFendan->SetText(L"否");
- }
- CLabelUI* pFenlei = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei")));
- if(newPrinter.fenlei == "1")
- {
- pFenlei->SetText(L"是");
- }
- else
- {
- pFenlei->SetText(L"否");
- }
- std::string foodtypeNames = "";
- std::string foodtype_ids = newPrinter.fenlei_ids;
- std::vector<string> ids = CLewaimaiString::Split(foodtype_ids, ",");
- for(std::vector<string>::iterator it = ids.begin(); it != ids.end(); it++)
- {
- std::string name = CSetting::getFoodtypeName((*it));
- std::wstring ws_name = CLewaimaiString::UTF8ToUnicode(name);
- if(name == "zhipuzi_not_found_xxx")
- {
- //这种情况是以前保存的分类后来被删掉了
- }
- else
- {
- foodtypeNames += name + " ";
- }
- }
- foodtypeNames = foodtypeNames.substr(0, foodtypeNames.size() - 1);
- std::wstring ws_foodtypeNames = CLewaimaiString::UTF8ToUnicode(foodtypeNames);
- CLabelUI* pFenleiIds = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei_ids")));
- pFenleiIds->SetText(ws_foodtypeNames.c_str());
- }
- }
- }
- else if(name == _T("setting_chufang_printer_item_delete_btn"))
- {
- CListUI* pPrinterList = static_cast<CListUI*>(m_pm.FindControl(_T("setting_chufang_printer_list")));
- CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(msg.pSender->GetParent()->GetParent()->GetParent());
- wstring date = pEle->GetCustomAttribute(L"date");
- //获得了ID,这个时候从内存和数据库中分别删除对应的记录
- CSetting::DelChufangPrinter(CLewaimaiString::UnicodeToUTF8(date));
- pPrinterList->Remove(pEle);
- }
- else if(name == _T("setting_logout"))
- {
- //退出登录
- CSetting::SetParam("setting_is_auto_login", "0", true);
- CLoginWnd* pLogin = new CLoginWnd();
- if(pLogin == NULL)
- {
- return;
- }
- pLogin->Create(NULL, _T("智铺子收银软件登录"), UI_WNDSTYLE_DIALOG, 0, 0, 0, 0, 0, NULL);
- pLogin->SetIcon(IDI_ICON_DUILIB);
- pLogin->CenterWindow();
- ::ShowWindow(*pLogin, SW_SHOWNORMAL);
- Close();
- }
- }
- void CMainWnd::HandleSelectChangeMsg(TNotifyUI& msg)
- {
- CDuiString name = msg.pSender->GetName();
- //先判断主页面的tab
- if(name == _T("main_waimai"))
- {
- CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(m_pm.FindControl(_T("switch")));
- if(pControl && pControl->GetCurSel() != 0)
- {
- pControl->SelectItem(0);
- }
- }
- else if(name == _T("main_setting"))
- {
- CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(m_pm.FindControl(_T("switch")));
- if(pControl && pControl->GetCurSel() != 2)
- {
- pControl->SelectItem(2);
- }
- }
- else if(name == _T("main_contact"))
- {
- CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(m_pm.FindControl(_T("switch")));
- if(pControl && pControl->GetCurSel() != 3)
- {
- pControl->SelectItem(3);
- }
- }
- //判断外卖的tab
- else if(name == _T("waimai_open_switch") || name == _T("waimai_confirmed_switch") || name == _T("waimai_delivery_switch") || name == _T("waimai_success_switch") || name == _T("waimai_fail_switch") || name == _T("waimai_cancel_switch") || name == _T("waimai_refund_switch"))
- {
- OrderListUI* orderlist = static_cast<OrderListUI*>(m_pm.FindControl(_T("orderlist")));
- //切换状态全部重新开始从第1页
- orderlist->SetPage(1);
- if(name == _T("waimai_open_switch"))
- {
- orderlist->SetStatus(1);
- }
- else if(name == _T("waimai_confirmed_switch"))
- {
- orderlist->SetStatus(2);
- }
- else if(name == _T("waimai_delivery_switch"))
- {
- orderlist->SetStatus(3);
- }
- else if(name == _T("waimai_success_switch"))
- {
- orderlist->SetStatus(4);
- }
- else if(name == _T("waimai_fail_switch"))
- {
- orderlist->SetStatus(5);
- }
- else if(name == _T("waimai_cancel_switch"))
- {
- orderlist->SetStatus(6);
- }
- else if(name == _T("waimai_refund_switch"))
- {
- orderlist->SetStatus(7);
- }
- orderlist->Refresh();
- }
- //判断设置中心的tab
- else if(name == _T("setting_waimai_order_switch"))
- {
- CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(m_pm.FindControl(_T("setting_switch")));
- pControl->SelectItem(0);
- }
- else if(name == _T("setting_printer_switch"))
- {
- CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(m_pm.FindControl(_T("setting_switch")));
- pControl->SelectItem(1);
- }
- else if(name == _T("setting_chufang_printer_switch"))
- {
- CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(m_pm.FindControl(_T("setting_switch")));
- pControl->SelectItem(2);
- }
- else if(name == _T("setting_system_switch"))
- {
- CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(m_pm.FindControl(_T("setting_switch")));
- pControl->SelectItem(3);
- }
- else if(name == _T("setting_system_about"))
- {
- CTabLayoutUI* pControl = static_cast<CTabLayoutUI*>(m_pm.FindControl(_T("setting_switch")));
- pControl->SelectItem(4);
- }
- }
- void CMainWnd::HandleItemSelectMsg(TNotifyUI& msg)
- {
- CDuiString name = msg.pSender->GetName();
- if(name == _T("setting_printer_guige"))
- {
- CComboUI* com = static_cast<CComboUI*>(m_pm.FindControl(_T("setting_printer_guige")));
- if(com->GetCurSel() == 0)
- {
- CSetting::SetParam("setting_printer_guige", "58");
- }
- else
- {
- CSetting::SetParam("setting_printer_guige", "80");
- }
- }
- else if(name == _T("setting_printer_lianshu"))
- {
- CComboUI* com = static_cast<CComboUI*>(m_pm.FindControl(_T("setting_printer_lianshu")));
- if(com->GetCurSel() == 0)
- {
- CSetting::SetParam("setting_printer_lianshu", "1");
- }
- else if(com->GetCurSel() == 1)
- {
- CSetting::SetParam("setting_printer_lianshu", "2");
- }
- else if(com->GetCurSel() == 2)
- {
- CSetting::SetParam("setting_printer_lianshu", "3");
- }
- else if(com->GetCurSel() == 3)
- {
- CSetting::SetParam("setting_printer_lianshu", "4");
- }
- }
- else if(name == _T("setting_printer_leixing"))
- {
- CComboUI* com = static_cast<CComboUI*>(m_pm.FindControl(_T("setting_printer_leixing")));
- CHorizontalLayoutUI* usb_layout = static_cast<CHorizontalLayoutUI*>(m_pm.FindControl(_T("setting_printer_usb_layout")));
- CHorizontalLayoutUI* wangkou_layout = static_cast<CHorizontalLayoutUI*>(m_pm.FindControl(_T("setting_printer_wangkou_layout")));
- if(com->GetCurSel() == 0)
- {
- CSetting::SetParam("setting_printer_leixing", "auto");
- usb_layout->SetVisible(false);
- wangkou_layout->SetVisible(false);
- }
- else if(com->GetCurSel() == 1)
- {
- CSetting::SetParam("setting_printer_leixing", "usb");
- //显示usb布局
- usb_layout->SetVisible(true);
- wangkou_layout->SetVisible(false);
- //usb下拉框默认选中
- CComboUI* com_usb = static_cast<CComboUI*>(m_pm.FindControl(_T("setting_printer_usb")));
- com_usb->RemoveAll();
- //数据库中保存的之前的设置
- std::string setting_printer_usb = CSetting::GetParam("setting_printer_usb");
- std::wstring ws_setting_printer_usb = CLewaimaiString::UTF8ToUnicode(setting_printer_usb);
- CPosPrinter printer;
- printer.InitUsb();
- std::vector<std::wstring> usb_devices = printer.getUsbDevices();
- int i = 0;
- int nSelect = -1;
- for(std::vector<std::wstring>::iterator it = usb_devices.begin(); it != usb_devices.end(); it++)
- {
- CListLabelElementUI* elem = new CListLabelElementUI();
- elem->SetText((*it).c_str());
- com_usb->Add(elem);
- if(*it == ws_setting_printer_usb)
- {
- nSelect = i;
- }
- i++;
- }
- com_usb->SetInternVisible(true);
- com_usb->SelectItem(nSelect, false, false);
- com_usb->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_usb).c_str());
- }
- else if(com->GetCurSel() == 2)
- {
- CSetting::SetParam("setting_printer_leixing", "bingkou");
- usb_layout->SetVisible(false);
- wangkou_layout->SetVisible(false);
- }
- else if(com->GetCurSel() == 3)
- {
- CSetting::SetParam("setting_printer_leixing", "chuankou");
- usb_layout->SetVisible(false);
- wangkou_layout->SetVisible(false);
- }
- else if(com->GetCurSel() == 4)
- {
- CSetting::SetParam("setting_printer_leixing", "wangkou");
- usb_layout->SetVisible(false);
- wangkou_layout->SetVisible(true);
- std::string setting_printer_wangkou_ip = CSetting::GetParam("setting_printer_wangkou_ip");
- CEditUI* ip_edit = static_cast<CEditUI*>(m_pm.FindControl(_T("setting_printer_wangkou_ip")));
- ip_edit->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_wangkou_ip).c_str());
- }
- }
- else if(name == _T("setting_printer_usb"))
- {
- CComboUI* com = static_cast<CComboUI*>(m_pm.FindControl(_T("setting_printer_usb")));
- wstring usb_device = com->GetText();
- CSetting::SetParam("setting_printer_usb", CLewaimaiString::UnicodeToUTF8(usb_device));
- }
- }
- LRESULT CMainWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
- {
- LRESULT lRes = 0;
- BOOL bHandled = TRUE;
- switch(uMsg)
- {
- case WM_CREATE:
- lRes = OnCreate(uMsg, wParam, lParam, bHandled);
- break;
- case WM_CLOSE:
- lRes = OnClose(uMsg, wParam, lParam, bHandled);
- break;
- case WM_DESTROY:
- lRes = OnDestroy(uMsg, wParam, lParam, bHandled);
- break;
- case WM_NCACTIVATE:
- lRes = OnNcActivate(uMsg, wParam, lParam, bHandled);
- break;
- case WM_NCCALCSIZE:
- lRes = OnNcCalcSize(uMsg, wParam, lParam, bHandled);
- break;
- case WM_NCPAINT:
- lRes = OnNcPaint(uMsg, wParam, lParam, bHandled);
- break;
- case WM_NCHITTEST:
- lRes = OnNcHitTest(uMsg, wParam, lParam, bHandled);
- break;
- case WM_SIZE:
- lRes = OnSize(uMsg, wParam, lParam, bHandled);
- break;
- case WM_GETMINMAXINFO:
- lRes = OnGetMinMaxInfo(uMsg, wParam, lParam, bHandled);
- break;
- case WM_SYSCOMMAND:
- lRes = OnSysCommand(uMsg, wParam, lParam, bHandled);
- break;
- case WM_SHOWTASK:
- lRes = OnTrayIcon(uMsg, wParam, lParam, bHandled);
- break;
- case WM_ORDERLIST_REFRESH:
- lRes = OnOrderlistRefresh(uMsg, wParam, lParam, bHandled);
- break;
- case WM_LOGIN_AGAIN_OUT:
- lRes = OnLoginOut(uMsg, wParam, lParam, bHandled);
- break;
- default:
- bHandled = FALSE;
- }
- if(bHandled)
- {
- return lRes;
- }
- if(m_pm.MessageHandler(uMsg, wParam, lParam, lRes))
- {
- return lRes;
- }
- return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
- }
- LRESULT CMainWnd::OnSysCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
- {
- // 有时会在收到WM_NCDESTROY后收到wParam为SC_CLOSE的WM_SYSCOMMAND
- if(wParam == SC_CLOSE)
- {
- ::PostQuitMessage(0L);
- bHandled = TRUE;
- return 0;
- }
- BOOL bZoomed = ::IsZoomed(*this);
- LRESULT lRes = CWindowWnd::HandleMessage(uMsg, wParam, lParam);
- if(::IsZoomed(*this) != bZoomed)
- {
- if(!bZoomed)
- {
- CControlUI* pControl = static_cast<CControlUI*>(m_pm.FindControl(_T("maxbtn")));
- if(pControl)
- {
- pControl->SetVisible(false);
- }
- pControl = static_cast<CControlUI*>(m_pm.FindControl(_T("restorebtn")));
- if(pControl)
- {
- pControl->SetVisible(true);
- }
- }
- else
- {
- CControlUI* pControl = static_cast<CControlUI*>(m_pm.FindControl(_T("maxbtn")));
- if(pControl)
- {
- pControl->SetVisible(true);
- }
- pControl = static_cast<CControlUI*>(m_pm.FindControl(_T("restorebtn")));
- if(pControl)
- {
- pControl->SetVisible(false);
- }
- }
- }
- return lRes;
- }
- LRESULT CMainWnd::OnGetMinMaxInfo(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
- {
- int primaryMonitorWidth = ::GetSystemMetrics(SM_CXSCREEN);
- int primaryMonitorHeight = ::GetSystemMetrics(SM_CYSCREEN);
- MONITORINFO oMonitor = {};
- oMonitor.cbSize = sizeof(oMonitor);
- ::GetMonitorInfo(::MonitorFromWindow(*this, MONITOR_DEFAULTTOPRIMARY), &oMonitor);
- CDuiRect rcWork = oMonitor.rcWork;
- rcWork.Offset(-oMonitor.rcMonitor.left, -oMonitor.rcMonitor.top);
- if(rcWork.right > primaryMonitorWidth)
- {
- rcWork.right = primaryMonitorWidth;
- }
- if(rcWork.bottom > primaryMonitorHeight)
- {
- rcWork.right = primaryMonitorHeight;
- }
- LPMINMAXINFO lpMMI = (LPMINMAXINFO)lParam;
- lpMMI->ptMaxPosition.x = rcWork.left;
- lpMMI->ptMaxPosition.y = rcWork.top;
- lpMMI->ptMaxSize.x = rcWork.right;
- lpMMI->ptMaxSize.y = rcWork.bottom;
- bHandled = FALSE;
- return 0;
- }
- LRESULT CMainWnd::OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
- {
- SIZE szRoundCorner = m_pm.GetRoundCorner();
- if(!::IsIconic(*this) && (szRoundCorner.cx != 0 || szRoundCorner.cy != 0))
- {
- CDuiRect rcWnd;
- ::GetWindowRect(*this, &rcWnd);
- rcWnd.Offset(-rcWnd.left, -rcWnd.top);
- rcWnd.right++;
- rcWnd.bottom++;
- HRGN hRgn = ::CreateRoundRectRgn(rcWnd.left, rcWnd.top, rcWnd.right, rcWnd.bottom, szRoundCorner.cx, szRoundCorner.cy);
- ::SetWindowRgn(*this, hRgn, TRUE);
- ::DeleteObject(hRgn);
- }
- bHandled = FALSE;
- return 0;
- }
- LRESULT CMainWnd::OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
- {
- bHandled = FALSE;
- return 0;
- }
- /*
- *这个是窗口被销毁的时候调用的
- **/
- LRESULT CMainWnd::OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
- {
- //直接退出程序,或者退出登录都会执行这个
- m_push->Stop();
- bHandled = FALSE;
- return 0;
- }
- LRESULT CMainWnd::OnNcActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
- {
- if(::IsIconic(*this))
- {
- bHandled = FALSE;
- }
- return (wParam == 0) ? TRUE : FALSE;
- }
- LRESULT CMainWnd::OnNcCalcSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
- {
- return 0;
- }
- LRESULT CMainWnd::OnNcPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
- {
- return 0;
- }
- LRESULT CMainWnd::OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
- {
- POINT pt;
- pt.x = GET_X_LPARAM(lParam);
- pt.y = GET_Y_LPARAM(lParam);
- ::ScreenToClient(*this, &pt);
- RECT rcClient;
- ::GetClientRect(*this, &rcClient);
- if(!::IsZoomed(*this))
- {
- RECT rcSizeBox = m_pm.GetSizeBox();
- if(pt.y < rcClient.top + rcSizeBox.top)
- {
- if(pt.x < rcClient.left + rcSizeBox.left)
- {
- return HTTOPLEFT;
- }
- if(pt.x > rcClient.right - rcSizeBox.right)
- {
- return HTTOPRIGHT;
- }
- return HTTOP;
- }
- else if(pt.y > rcClient.bottom - rcSizeBox.bottom)
- {
- if(pt.x < rcClient.left + rcSizeBox.left)
- {
- return HTBOTTOMLEFT;
- }
- if(pt.x > rcClient.right - rcSizeBox.right)
- {
- return HTBOTTOMRIGHT;
- }
- return HTBOTTOM;
- }
- if(pt.x < rcClient.left + rcSizeBox.left)
- {
- return HTLEFT;
- }
- if(pt.x > rcClient.right - rcSizeBox.right)
- {
- return HTRIGHT;
- }
- }
- RECT rcCaption = m_pm.GetCaptionRect();
- if(pt.x >= rcClient.left + rcCaption.left && pt.x < rcClient.right - rcCaption.right \
- && pt.y >= rcCaption.top && pt.y < rcCaption.bottom)
- {
- CControlUI* pControl = static_cast<CControlUI*>(m_pm.FindControl(pt));
- if(pControl && _tcscmp(pControl->GetClass(), DUI_CTR_BUTTON) != 0 &&
- _tcscmp(pControl->GetClass(), DUI_CTR_OPTION) != 0 &&
- _tcscmp(pControl->GetClass(), DUI_CTR_TEXT) != 0)
- {
- return HTCAPTION;
- }
- }
- return HTCLIENT;
- }
- void CMainWnd::AddTrayIcon()
- {
- memset(&m_trayIcon, 0, sizeof(NOTIFYICONDATA));
- m_trayIcon.cbSize = sizeof(NOTIFYICONDATA);
- m_trayIcon.hIcon = ::LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ICON_DUILIB));
- m_trayIcon.hWnd = m_hWnd;
- lstrcpy(m_trayIcon.szTip, _T("智铺子收银软件"));
- m_trayIcon.uCallbackMessage = WM_SHOWTASK;
- m_trayIcon.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
- Shell_NotifyIcon(NIM_ADD, &m_trayIcon);
- ShowWindow(SW_HIDE);
- }
- LRESULT CMainWnd::OnTrayIcon(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
- {
- //如果在图标中单击左键则还原
- if(lParam == WM_LBUTTONDOWN)
- {
- //删除托盘图标
- Shell_NotifyIcon(NIM_DELETE, &m_trayIcon);
- //显示主窗口
- ShowWindow(SW_SHOWNORMAL);
- //窗口最大化
- SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE, 0);
- }
- //如果在图标中单击右键则弹出声明式菜单
- if(lParam == WM_RBUTTONDOWN)
- {
- //获取鼠标坐标
- POINT pt;
- GetCursorPos(&pt);
- //右击后点别地可以清除“右击出来的菜单”
- SetForegroundWindow(m_hWnd);
- //托盘菜单 win32程序使用的是HMENU,如果是MFC程序可以使用CMenu
- HMENU hMenu;
- //生成托盘菜单
- hMenu = CreatePopupMenu();
- //添加菜单,关键在于设置的一个标识符 WM_ONCLOSE 点击后会用到
- AppendMenu(hMenu, MF_STRING, WM_ONCLOSE, _T("退出"));
- //弹出菜单,并把用户所选菜单项的标识符返回
- int cmd = TrackPopupMenu(hMenu, TPM_RETURNCMD, pt.x, pt.y, NULL, m_hWnd, NULL);
- //如果标识符是WM_ONCLOSE则关闭
- if(cmd == WM_ONCLOSE)
- {
- m_trayIcon.hIcon = NULL;
- Shell_NotifyIcon(NIM_DELETE, &m_trayIcon);
- //退出程序
- ::PostQuitMessage(0);
- }
- }
- bHandled = true;
- return 0;
- }
- LRESULT CMainWnd::OnOrderlistRefresh(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
- {
- OrderListUI* orderlist = static_cast<OrderListUI*>(m_pm.FindControl(_T("orderlist")));
- orderlist->DoRefresh();
- return 1;
- }
- LRESULT CMainWnd::OnLoginOut(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
- {
- LoginOut(2);
- bHandled = true;
- return 1;
- }
- void CMainWnd::InitSettingStatus()
- {
- CLabelUI* name_version = static_cast<CLabelUI*>(m_pm.FindControl(_T("main_name_version")));
- name_version->SetText((L"智铺子收银软件 " + CLewaimaiString::UTF8ToUnicode(CSystem::GetVersion())).c_str());
- CLabelUI* version = static_cast<CLabelUI*>(m_pm.FindControl(_T("setting_version")));
- version->SetText((L"版本号:" + CLewaimaiString::UTF8ToUnicode(CSystem::GetVersion())).c_str());
- CCheckBoxUI* box = NULL;
- CComboUI* com = NULL;
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_is_new_waimai_voice")));
- if(CSetting::GetParam("setting_is_new_waimai_voice") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_is_new_waimai_autoconfirm")));
- if(CSetting::GetParam("setting_is_new_waimai_autoconfirm") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_is_new_waimai_dialog")));
- if(CSetting::GetParam("setting_is_new_waimai_dialog") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_is_new_waimai_printer")));
- if(CSetting::GetParam("setting_is_new_waimai_printer") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- com = static_cast<CComboUI*>(m_pm.FindControl(_T("setting_printer_guige")));
- if(CSetting::GetParam("setting_printer_guige") == "58")
- {
- com->SetInternVisible(true);
- com->SelectItem(0, false, false);
- }
- else
- {
- com->SetInternVisible(true);
- com->SelectItem(1, false, false);
- }
- com = static_cast<CComboUI*>(m_pm.FindControl(_T("setting_printer_lianshu")));
- std::string setting_printer_lianshu = CSetting::GetParam("setting_printer_lianshu");
- if(setting_printer_lianshu == "1")
- {
- com->SetInternVisible(true);
- com->SelectItem(0, false, false);
- com->SetText(L"1联");
- }
- else if(setting_printer_lianshu == "2")
- {
- com->SetInternVisible(true);
- com->SelectItem(1, false, false);
- com->SetText(L"2联");
- }
- else if(setting_printer_lianshu == "3")
- {
- com->SetInternVisible(true);
- com->SelectItem(2, false, false);
- com->SetText(L"3联");
- }
- else if(setting_printer_lianshu == "4")
- {
- com->SetInternVisible(true);
- com->SelectItem(3, false, false);
- com->SetText(L"4联");
- }
- com = static_cast<CComboUI*>(m_pm.FindControl(_T("setting_printer_leixing")));
- std::string setting_printer_leixing = CSetting::GetParam("setting_printer_leixing");
- CHorizontalLayoutUI* usb_layout = static_cast<CHorizontalLayoutUI*>(m_pm.FindControl(_T("setting_printer_usb_layout")));
- CHorizontalLayoutUI* wangkou_layout = static_cast<CHorizontalLayoutUI*>(m_pm.FindControl(_T("setting_printer_wangkou_layout")));
- if(setting_printer_leixing == "auto")
- {
- com->SetInternVisible(true);
- com->SelectItem(0, false, false);
- com->SetText(L"智能识别模式");
- //智能识别模式隐藏这2个
- usb_layout->SetVisible(false);
- wangkou_layout->SetVisible(false);
- }
- else if(setting_printer_leixing == "usb")
- {
- com->SetInternVisible(true);
- com->SelectItem(1, false, false);
- com->SetText(L"usb");
- //显示usb布局
- usb_layout->SetVisible(true);
- wangkou_layout->SetVisible(false);
- //usb下拉框默认选中
- CComboUI* com_usb = static_cast<CComboUI*>(m_pm.FindControl(_T("setting_printer_usb")));
- com_usb->RemoveAll();
- //数据库中保存的之前的设置
- std::string setting_printer_usb = CSetting::GetParam("setting_printer_usb");
- std::wstring ws_setting_printer_usb = CLewaimaiString::UTF8ToUnicode(setting_printer_usb);
- CPosPrinter printer;
- printer.InitUsb();
- std::vector<std::wstring> usb_devices = printer.getUsbDevices();
- int i = 0;
- int nSelect = -1;
- for(std::vector<std::wstring>::iterator it = usb_devices.begin(); it != usb_devices.end(); it++)
- {
- CListLabelElementUI* elem = new CListLabelElementUI();
- elem->SetText((*it).c_str());
- com_usb->Add(elem);
- if(*it == ws_setting_printer_usb)
- {
- nSelect = i;
- }
- i++;
- }
- com_usb->SetInternVisible(true);
- com_usb->SelectItem(nSelect, false, false);
- com_usb->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_usb).c_str());
- }
- else if(setting_printer_leixing == "bingkou")
- {
- com->SetInternVisible(true);
- com->SelectItem(2, false, false);
- com->SetText(L"并口");
- usb_layout->SetVisible(false);
- wangkou_layout->SetVisible(false);
- }
- else if(setting_printer_leixing == "chuankou")
- {
- com->SetInternVisible(true);
- com->SelectItem(3, false, false);
- com->SetText(L"串口");
- usb_layout->SetVisible(false);
- wangkou_layout->SetVisible(false);
- }
- else if(setting_printer_leixing == "wangkou")
- {
- com->SetInternVisible(true);
- com->SelectItem(4, false, false);
- com->SetText(L"网口");
- usb_layout->SetVisible(false);
- wangkou_layout->SetVisible(true);
- std::string setting_printer_wangkou_ip = CSetting::GetParam("setting_printer_wangkou_ip");
- CEditUI* ip_edit = static_cast<CEditUI*>(m_pm.FindControl(_T("setting_printer_wangkou_ip")));
- ip_edit->SetText(CLewaimaiString::UTF8ToUnicode(setting_printer_wangkou_ip).c_str());
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_quhuo_big")));
- if(CSetting::GetParam("setting_printer_quhuo_big") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_dingdanhao_big")));
- if(CSetting::GetParam("setting_printer_dingdanhao_big") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_xiadanshijian_big")));
- if(CSetting::GetParam("setting_printer_xiadanshijian_big") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_peisongshijian_big")));
- if(CSetting::GetParam("setting_printer_peisongshijian_big") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_name_big")));
- if(CSetting::GetParam("setting_printer_name_big") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_phone_big")));
- if(CSetting::GetParam("setting_printer_phone_big") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_address_big")));
- if(CSetting::GetParam("setting_printer_address_big") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_shangpin_big")));
- if(CSetting::GetParam("setting_printer_shangpin_big") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_memo_big")));
- if(CSetting::GetParam("setting_printer_memo_big") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_price_big")));
- if(CSetting::GetParam("setting_printer_price_big") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_printer_pay_big")));
- if(CSetting::GetParam("setting_printer_pay_big") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_is_new_waimai_chufang_printer")));
- if(CSetting::GetParam("setting_is_new_waimai_chufang_printer") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_is_auto_start")));
- if(CSetting::GetParam("setting_is_auto_start") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_is_auto_login")));
- if(CSetting::GetParam("setting_is_auto_login") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- box = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("setting_is_close_min")));
- if(CSetting::GetParam("setting_is_close_min") == "1")
- {
- box->Selected(true, false);
- }
- else
- {
- box->Selected(false, false);
- }
- //这里开始,初始化厨房打印机的设置
- CListUI* pPrinterList = static_cast<CListUI*>(m_pm.FindControl(_T("setting_chufang_printer_list")));
- //获取当前店铺的商品分类信息,用于设置厨房打印机的分类打印
- std::map<string, string> params;
- std::string response;
- std::string url = "/goodstype/getgoodstypelist";
- CZhipuziHttpClient::Request(url.c_str(), params, response);
- rapidjson::Document document;
- document.Parse(response.c_str());
- if(document.HasParseError())
- {
- LOG_INFO("parse response error!");
- return;
- }
- if(!document.HasMember("errcode") || !document.HasMember("errmsg") || !document.HasMember("data"))
- {
- LOG_INFO("json error!");
- return;
- }
- rapidjson::Value& v_errcode = document["errcode"];
- int errcode = v_errcode.GetInt();
- if(errcode != 0)
- {
- LOG_INFO("response failed! message:" << document["errmsg"].GetString());
- return;
- }
- //获得数据成功,把分类信息保存起来
- rapidjson::Value& data = document["data"];
- rapidjson::Value& v_rows = data["goods_types"];
- for(rapidjson::SizeType i = 0; i < v_rows.Size(); ++i)
- {
- rapidjson::Value& v_row_i = v_rows[i];
- std::string type_id = v_row_i["type_id"].GetString();
- std::string name = v_row_i["name"].GetString();
- CSetting::AddFoodtype(name, type_id);
- }
- //获取厨房打印机的集合
- std::vector<ChufangPrinter> printers = CSetting::getChufangPrints();
- for(std::vector<ChufangPrinter>::iterator it = printers.begin(); it != printers.end(); it++)
- {
- ChufangPrinter newPrinter = *it;
- CDialogBuilder builder;
- CListContainerElementUI* pEle = static_cast<CListContainerElementUI*>(builder.Create(_T("setting_chufang_printer_item.xml"), (UINT)0, NULL, &m_pm));
- CLabelUI* pName = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_name")));
- pName->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.name).c_str());
- CLabelUI* pIP = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_ip")));
- pIP->SetText(CLewaimaiString::UTF8ToUnicode(newPrinter.ip).c_str());
- CLabelUI* pGuige = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_guige")));
- if(newPrinter.guige == "58")
- {
- pGuige->SetText(L"58mm");
- }
- else
- {
- pGuige->SetText(L"80mm");
- }
- CLabelUI* pFendan = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_fendan")));
- if(newPrinter.fendan == "1")
- {
- pFendan->SetText(L"是");
- }
- else
- {
- pFendan->SetText(L"否");
- }
- CLabelUI* pFenlei = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei")));
- if(newPrinter.fenlei == "1")
- {
- pFenlei->SetText(L"是");
- }
- else
- {
- pFenlei->SetText(L"否");
- }
- std::string foodtypeNames = "";
- std::string foodtype_ids = newPrinter.fenlei_ids;
- //这个是删除掉不存在的type_id之后的
- std::string new_foodtype_ids = "";
- std::vector<string> ids = CLewaimaiString::Split(foodtype_ids, ",");
- for(std::vector<string>::iterator it = ids.begin(); it != ids.end(); it++)
- {
- std::string name = CSetting::getFoodtypeName((*it));
- if(name == "zhipuzi_not_found_xxx")
- {
- //这种情况是以前保存的分类后来被删掉了
- }
- else
- {
- foodtypeNames += name + " ";
- new_foodtype_ids += (*it) + ",";
- }
- }
- //删掉不存在的type_id,更新内存和数据库
- new_foodtype_ids = new_foodtype_ids.substr(0, new_foodtype_ids.length() - 1);
- if(new_foodtype_ids.compare(foodtype_ids) != 0)
- {
- CSetting::UpdateChufangPrinter(newPrinter.date, newPrinter.name, newPrinter.ip, newPrinter.guige, newPrinter.fendan, newPrinter.fenlei, new_foodtype_ids, true);
- }
- foodtypeNames = foodtypeNames.substr(0, foodtypeNames.size() - 1);
- std::wstring ws_foodtypeNames = CLewaimaiString::UTF8ToUnicode(foodtypeNames);
- CLabelUI* pFenleiIds = static_cast<CLabelUI*>(pEle->FindSubControl(_T("setting_chufang_printer_item_fenlei_ids")));
- pFenleiIds->SetText(ws_foodtypeNames.c_str());
- //设置标记属性,用于修改时候匹配
- pEle->AddCustomAttribute(L"date", CLewaimaiString::UTF8ToUnicode(newPrinter.date).c_str());
- pPrinterList->Add(pEle);
- }
- }
- void CMainWnd::LoginOut(int mode)
- {
- CSetting::SetParam("setting_is_auto_login", "0", true);
- CLoginWnd* pLogin = new CLoginWnd();
- if(pLogin == NULL)
- {
- return;
- }
- //设置模式
- pLogin->SetMode(mode);
- pLogin->Create(NULL, _T("乐外卖接单软件登录"), UI_WNDSTYLE_DIALOG, 0, 0, 0, 0, 0, NULL);
- pLogin->SetIcon(IDI_ICON_DUILIB);
- pLogin->CenterWindow();
- ::ShowWindow(*pLogin, SW_SHOWNORMAL);
- Close();
- }
|