瀏覽代碼

厨房打印机的新建、编辑、删除全部弄好了

zhangyang 6 年之前
父節點
當前提交
777f4e5772

二進制
bin/Win32/Debug/zhipuzi_pos_windows/db/pos.db


+ 1 - 1
bin/Win32/Debug/zhipuzi_pos_windows/skin/chufang_printer_setting.xml

@@ -2,7 +2,7 @@
 <Window size="520,460" caption="0,0,0,36" roundcorner="4,4" >
 	<VerticalLayout inset="15,0,15,15" bkimage="file='Dialog_BG1.png' corner='4,50,4,4'" >
 		<HorizontalLayout height="32" inset="2,2,2,0">
-			<Label text="新建厨房打印机" width="100" />
+			<Label name="chufang_setting_title" text="新建厨房打印机" width="100" />
 			<Control />
 			<Button name="chufang_setting_closebtn" padding="0,4,0,0" width="22" height="22" tooltip="关闭" normalimage="file='Login_TopBar_Close_Btn.png'" hotimage="file='Login_TopBar_Close_Btn_Hover.png'" pushedimage="file='Login_TopBar_Close_Btn_Click.png'"/>
 		</HorizontalLayout>

二進制
bin/Win32/Debug/zhipuzi_pos_windows/zhipuzi_pos_windows.exe


+ 37 - 1
lewaimai_dispatch/tool/CSetting.cpp

@@ -61,10 +61,33 @@ void CSetting::AddChufangPrinter(std::string date, std::string name, std::string
 	}
 }
 
+void CSetting::UpdateChufangPrinter(std::string date, std::string name, std::string ip, std::string guige, std::string fendan, std::string fenlei, std::string fenlei_ids, bool isSave)
+{
+	for (std::vector<ChufangPrinter>::iterator it = m_chufang_printers.begin(); it != m_chufang_printers.end(); it++)
+	{
+		if ((*it).date == date)
+		{
+			(*it).name = name;
+			(*it).ip = ip;
+			(*it).guige = guige;
+			(*it).fendan = fendan;
+			(*it).fenlei = fenlei;
+			(*it).fenlei_ids = fenlei_ids;
+
+			break;
+		}
+	}
+
+	if (isSave)
+	{
+		SaveChufangPrinter();
+	}
+}
+
 /*
  *删除厨房打印机,默认会同步到数据库
  **/
-void CSetting:: DelChufangPrinter(std::string date)
+void CSetting::DelChufangPrinter(std::string date)
 {
 	for (std::vector<ChufangPrinter>::iterator it = m_chufang_printers.begin(); it != m_chufang_printers.end(); it++)
 	{
@@ -79,6 +102,19 @@ void CSetting:: DelChufangPrinter(std::string date)
 	SaveChufangPrinter();
 }
 
+ChufangPrinter CSetting::GetChufangPrinter(std::string date)
+{
+	for (std::vector<ChufangPrinter>::iterator it = m_chufang_printers.begin(); it != m_chufang_printers.end(); it++)
+	{
+		if ((*it).date == date)
+		{
+			return (*it);
+		}
+	}
+
+	return ChufangPrinter();
+}
+
 void CSetting::Init()
 {
 	m_mutex.lock();

+ 3 - 1
lewaimai_dispatch/tool/CSetting.h

@@ -26,9 +26,11 @@ public:
 
 	//厨房打印机相关的参数配置
 	static void AddChufangPrinter(std::string date, std::string name, std::string ip, std::string guige, std::string fendan, std::string fenlei, std::string fenlei_ids, bool isSave = true);
-
+	static void UpdateChufangPrinter(std::string date, std::string name, std::string ip, std::string guige, std::string fendan, std::string fenlei, std::string fenlei_ids, bool isSave = true);
 	static void DelChufangPrinter(std::string date);
 
+	static ChufangPrinter GetChufangPrinter(std::string date);
+
 	//刚打开程序的时候,根据数据库初始化内存,并且添加默认参数
 	static void Init();
 

+ 82 - 37
lewaimai_dispatch/wnd/CChufangSettingWnd.cpp

@@ -1,56 +1,101 @@
 #include "../pch/pch.h"
 #include "CChufangSettingWnd.h"
 
-void CChufangSettingWnd::HandleLogin()
+LRESULT CChufangSettingWnd::OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
 {
-	//判断账号密码是否正确
-	std::wstring account, password;
-	CEditUI* pAccountEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("accountedit")));
-	if (pAccountEdit)
-	{
-		account = pAccountEdit->GetText().GetData();
-	}
-
-	CEditUI* pPasswordEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("pwdedit")));
-	if (pPasswordEdit)
-	{
-		password = pPasswordEdit->GetText().GetData();
-	}
-
-	LOG_INFO("account:" << account.c_str() << ", password:" << password.c_str());
-
-	string s_account = CLewaimaiString::UnicodeToUTF8(account);
-	string s_password = CLewaimaiString::UnicodeToUTF8(password);
+	POINT pt;
+	pt.x = GET_X_LPARAM(lParam);
+	pt.y = GET_Y_LPARAM(lParam);
+	::ScreenToClient(*this, &pt);
 
-	CZhipuziHttpClient::Init(s_account, s_password);
+	RECT rcClient;
+	::GetClientRect(*this, &rcClient);
 
-	std::string errmsg;
-	bool res = CZhipuziHttpClient::Login(errmsg);
-
-	if (res)
+	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)
 	{
-		CMainWnd* pFrame = new CMainWnd();
-		if (pFrame == NULL)
+		CControlUI* pControl = static_cast<CControlUI*>(m_pm.FindControl(pt));
+		if (pControl && _tcscmp(pControl->GetClass(), DUI_CTR_BUTTON) != 0)
 		{
-			return;
+			return HTCAPTION;
 		}
+	}
 
-		pFrame->SetIcon(IDI_ICON_DUILIB);
-		pFrame->Create(NULL, _T("游戏中心"), UI_WNDSTYLE_FRAME, 0L, 0, 0, 1024, 738);
-		pFrame->CenterWindow();
+	return HTCLIENT;
+}
 
-		::ShowWindow(*pFrame, SW_SHOWMAXIMIZED);
+LRESULT CChufangSettingWnd::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);
+	}
 
-		Close();
+	bHandled = FALSE;
+	return 0;
+}
+
+LRESULT CChufangSettingWnd::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_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;
+	default:
+		bHandled = FALSE;
 	}
-	else
+	if (bHandled)
 	{
-		//登录失败了
-		CLabelUI* pLoginResultLabel = static_cast<CLabelUI*>(m_pm.FindControl(_T("loginresult")));
+		return lRes;
+	}
+	if (m_pm.MessageHandler(uMsg, wParam, lParam, lRes))
+	{
+		return lRes;
+	}
+	return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
+}
 
-		pLoginResultLabel->SetText(std::wstring(_T("登录失败:") + CLewaimaiString::UTF8ToUnicode(errmsg)).c_str());
-		pLoginResultLabel->SetVisible(true);
+LRESULT CChufangSettingWnd::MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool& bHandled)
+{
+	if (uMsg == WM_KEYDOWN)
+	{
+		if (wParam == VK_RETURN)
+		{
+			return true;
+		}
+		else if (wParam == VK_ESCAPE)
+		{
+			return true;
+		}
 	}
+	return false;
 }
 
 

+ 219 - 222
lewaimai_dispatch/wnd/CChufangSettingWnd.h

@@ -6,88 +6,185 @@
 class CChufangSettingWnd : public CWindowWnd, public INotifyUI, public IMessageFilterUI
 {
 public:
-	CChufangSettingWnd()
-	{
-
-	}
-
-	LPCTSTR GetWindowClassName() const
-	{
-		return _T("UILoginFrame");
-	};
+    CChufangSettingWnd(int mode)
+    {
+		m_mode = mode;
+    }
 
-	UINT GetClassStyle() const
+	void SetPrinterDate(std::string date)
 	{
-		return UI_CLASSSTYLE_DIALOG;
-	};
+		m_printer_date = date;
+	}
 
-	void OnFinalMessage(HWND /*hWnd*/)
-	{
-		//WindowImplBase::OnFinalMessage(hWnd);
-		m_pm.RemovePreMessageFilter(this);
-		delete this;
-	};
+    LPCTSTR GetWindowClassName() const
+    {
+        return _T("UILoginFrame");
+    };
+
+    UINT GetClassStyle() const
+    {
+        return UI_CLASSSTYLE_DIALOG;
+    };
+
+    void OnFinalMessage(HWND /*hWnd*/)
+    {
+        //WindowImplBase::OnFinalMessage(hWnd);
+        m_pm.RemovePreMessageFilter(this);
+        delete this;
+    };
+
+    void Init()
+    {
+		CLabelUI* title = static_cast<CLabelUI*>(m_pm.FindControl(_T("chufang_setting_title")));
+		if (m_mode == 1)
+		{
+			title->SetText(L"新建厨房打印机");
+		}
+		else
+		{
+			title->SetText(L"修改厨房打印机");
+		}
 
-	void Init()
-	{
+		CEditUI* name = static_cast<CEditUI*>(m_pm.FindControl(_T("chufang_setting_name")));
+		if (m_mode == 1)
+		{
+			name->SetText(L"");
+		}
+		else
+		{
+			ChufangPrinter updatePrinter = CSetting::GetChufangPrinter(m_printer_date);
+			name->SetText(CLewaimaiString::UTF8ToUnicode(updatePrinter.name).c_str());
+		}
 		
-	}
 
-	void Notify(TNotifyUI& msg)
-	{
-		if (msg.sType == _T("click"))
+		CEditUI* ip = static_cast<CEditUI*>(m_pm.FindControl(_T("chufang_setting_ip")));
+		if (m_mode == 1)
+		{
+			ip->SetText(L"");
+		}
+		else
 		{
-			DuiLib::CDuiString senderName = msg.pSender->GetName();
+			ChufangPrinter updatePrinter = CSetting::GetChufangPrinter(m_printer_date);
+			ip->SetText(CLewaimaiString::UTF8ToUnicode(updatePrinter.ip).c_str());
+		}
+		
 
-			if (senderName == _T("chufang_setting_closebtn"))
+		CComboUI* com = static_cast<CComboUI*>(m_pm.FindControl(_T("chufang_setting_guige")));
+		if (m_mode == 1)
+		{
+			com->SelectItem(0, false, false);
+		}
+		else
+		{
+			ChufangPrinter updatePrinter = CSetting::GetChufangPrinter(m_printer_date);
+			if (updatePrinter.guige == "58")
 			{
-				Close(IDCANCEL);
-				return;
+				com->SetInternVisible(true);
+				com->SelectItem(0, false, false);
 			}
-			else if (senderName == _T("chufang_setting_save"))
-			{
-				//开始保存厨房打印机的数据
-				CEditUI* pName = static_cast<CEditUI*>(m_pm.FindControl(_T("chufang_setting_name")));
-				wstring wsName = pName->GetText();
-
-				CEditUI* pIP = static_cast<CEditUI*>(m_pm.FindControl(_T("chufang_setting_ip")));
-				wstring wsIP = pIP->GetText();
 
-				CComboUI* com = static_cast<CComboUI*>(m_pm.FindControl(_T("chufang_setting_guige")));
-				wstring wsGuige;
-				if (com->GetCurSel() == 0)
-				{
-					wsGuige = L"58";
-				}
-				else
-				{
-					wsGuige = L"80";
-				}
+			else
+			{
+				com->SetInternVisible(true);
+				com->SelectItem(1, false, false);
+			}
+		}
+		
 
-				CCheckBoxUI* pFendan = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("chufang_setting_fendan")));
-				wstring wsFendan;
-				if (pFendan->IsSelected())
-				{
-					wsFendan = L"1";
-				}
-				else
-				{
-					wsFendan = L"0";
-				}
+		CCheckBoxUI* fendan = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("chufang_setting_fendan")));
+		if (m_mode == 1)
+		{
+			fendan->Selected(false, false);
+		}
+		else
+		{
+			ChufangPrinter updatePrinter = CSetting::GetChufangPrinter(m_printer_date);
+			if (updatePrinter.fendan == "1")
+			{
+				fendan->Selected(true, false);
+			}
+			else
+			{
+				fendan->Selected(false, false);
+			}
+		}		
 
-				CCheckBoxUI* pFenlei = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("chufang_setting_fenlei")));
-				wstring wsFenlei;
-				if (pFenlei->IsSelected())
-				{
-					wsFenlei = L"1";
-				}
-				else
-				{
-					wsFenlei = L"0";
-				}
+		CCheckBoxUI* fenlei = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("chufang_setting_fenlei")));
+		if (m_mode == 1)
+		{
+			fenlei->Selected(false, false);
+		}
+		else
+		{
+			ChufangPrinter updatePrinter = CSetting::GetChufangPrinter(m_printer_date);
+			if (updatePrinter.fenlei == "1")
+			{
+				fenlei->Selected(true, false);
+			}
+			else
+			{
+				fenlei->Selected(false, false);
+			}
+		}
+    }
+
+    void Notify(TNotifyUI& msg)
+    {
+        if(msg.sType == _T("click"))
+        {
+            DuiLib::CDuiString senderName = msg.pSender->GetName();
+
+            if(senderName == _T("chufang_setting_closebtn"))
+            {
+                Close(IDCANCEL);
+                return;
+            }
+            else if(senderName == _T("chufang_setting_save"))
+            {
+                //开始保存厨房打印机的数据
+                CEditUI* pName = static_cast<CEditUI*>(m_pm.FindControl(_T("chufang_setting_name")));
+                wstring wsName = pName->GetText();
+
+                CEditUI* pIP = static_cast<CEditUI*>(m_pm.FindControl(_T("chufang_setting_ip")));
+                wstring wsIP = pIP->GetText();
+
+                CComboUI* com = static_cast<CComboUI*>(m_pm.FindControl(_T("chufang_setting_guige")));
+                wstring wsGuige;
+                if(com->GetCurSel() == 0)
+                {
+                    wsGuige = L"58";
+                }
+                else
+                {
+                    wsGuige = L"80";
+                }
+
+                CCheckBoxUI* pFendan = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("chufang_setting_fendan")));
+                wstring wsFendan;
+                if(pFendan->IsSelected())
+                {
+                    wsFendan = L"1";
+                }
+                else
+                {
+                    wsFendan = L"0";
+                }
+
+                CCheckBoxUI* pFenlei = static_cast<CCheckBoxUI*>(m_pm.FindControl(_T("chufang_setting_fenlei")));
+                wstring wsFenlei;
+                if(pFenlei->IsSelected())
+                {
+                    wsFenlei = L"1";
+                }
+                else
+                {
+                    wsFenlei = L"0";
+                }
+
+                //保存数据到数据库
 
-				//保存数据到数据库
 				std::string date = to_string(time(NULL));
+
 				std::string name = CLewaimaiString::UnicodeToUTF8(wsName);
 				std::string ip = CLewaimaiString::UnicodeToUTF8(wsIP);
 				std::string guige = CLewaimaiString::UnicodeToUTF8(wsGuige);
@@ -95,179 +192,79 @@ public:
 				std::string fenlei = CLewaimaiString::UnicodeToUTF8(wsFenlei);
 				std::string fenlei_ids = "";
 
-				CSetting::AddChufangPrinter(date, name, ip, guige, fendan, fenlei, fenlei_ids, true);
+				if (m_mode == 1)
+				{
+					CSetting::AddChufangPrinter(date, name, ip, guige, fendan, fenlei, fenlei_ids, true);
+				}
+				else
+				{
+					CSetting::UpdateChufangPrinter(m_printer_date, name, ip, guige, fendan, fenlei, fenlei_ids, true);
+				}
 
-				Close(IDOK);
-				return;
-			}
-		}
-	}
+                Close(IDOK);
+                return;
+            }
+        }
+    }
 
-	LRESULT 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);
+    LRESULT 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);
+        // 把自己的窗口句柄与窗口绘制管理器挂接在一起
+        m_pm.Init(m_hWnd);
 
-		m_pm.AddPreMessageFilter(this);
+        m_pm.AddPreMessageFilter(this);
 
-		CDialogBuilder builder;
+        CDialogBuilder builder;
 
-		CControlUI* pRoot = builder.Create(_T("chufang_printer_setting.xml"), (UINT)0, NULL, &m_pm);
-		ASSERT(pRoot && "Failed to parse XML");
+        CControlUI* pRoot = builder.Create(_T("chufang_printer_setting.xml"), (UINT)0, NULL, &m_pm);
+        ASSERT(pRoot && "Failed to parse XML");
 
-		// 把这些控件绘制到本窗口上
-		m_pm.AttachDialog(pRoot);
+        // 把这些控件绘制到本窗口上
+        m_pm.AttachDialog(pRoot);
 
-		// 把自己加入到CPaintManagerUI的m_aNotifiers数组中,用于处理Notify函数
-		m_pm.AddNotifier(this);
+        // 把自己加入到CPaintManagerUI的m_aNotifiers数组中,用于处理Notify函数
+        m_pm.AddNotifier(this);
 
-		Init();
+        Init();
 
-		return 0;
-	}
+        return 0;
+    }
 
-	LRESULT OnNcActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
-	{
-		if (::IsIconic(*this))
-		{
-			bHandled = FALSE;
-		}
-		return (wParam == 0) ? TRUE : FALSE;
-	}
+    LRESULT OnNcActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
+    {
+        if(::IsIconic(*this))
+        {
+            bHandled = FALSE;
+        }
+        return (wParam == 0) ? TRUE : FALSE;
+    }
 
-	LRESULT OnNcCalcSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
-	{
-		return 0;
-	}
+    LRESULT OnNcCalcSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
+    {
+        return 0;
+    }
 
-	LRESULT OnNcPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
-	{
-		return 0;
-	}
+    LRESULT OnNcPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
+    {
+        return 0;
+    }
 
-	LRESULT 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);
+	LRESULT OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
 
-		RECT rcClient;
-		::GetClientRect(*this, &rcClient);
+	LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
 
-		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)
-			{
-				return HTCAPTION;
-			}
-		}
+	LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam);
 
-		return HTCLIENT;
-	}
-
-	LRESULT 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 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_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;
-		default:
-			bHandled = FALSE;
-		}
-		if (bHandled)
-		{
-			return lRes;
-		}
-		if (m_pm.MessageHandler(uMsg, wParam, lParam, lRes))
-		{
-			return lRes;
-		}
-		return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
-	}
-
-	LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool& bHandled)
-	{
-		if (uMsg == WM_KEYDOWN)
-		{
-			if (wParam == VK_RETURN)
-			{
-				CEditUI* pEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("accountedit")));
-				if (pEdit->GetText().IsEmpty())
-				{
-					pEdit->SetFocus();
-				}
-				else
-				{
-					pEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("pwdedit")));
-					if (pEdit->GetText().IsEmpty())
-					{
-						pEdit->SetFocus();
-					}
-					else
-					{
-						this->HandleLogin();
-					}
-				}
-				return true;
-			}
-			else if (wParam == VK_ESCAPE)
-			{
-				PostQuitMessage(0);
-				return true;
-			}
-
-		}
-		return false;
-	}
-
-	void HandleLogin();
+	LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool& bHandled);
 
 public:
-	CPaintManagerUI m_pm;
+    CPaintManagerUI m_pm;
+
+	int m_mode; //为1表示新建,为2表示修改
+	std::string m_printer_date; //修改模式下的打印机的日期
 };
 

+ 67 - 1
lewaimai_dispatch/wnd/CMainWnd.cpp

@@ -482,7 +482,7 @@ void CMainWnd::HandleClickMsg(TNotifyUI& msg)
 
     else if(name == _T("setting_new_chufang_printer_btn"))
     {
-        CChufangSettingWnd* pChufangFrame = new CChufangSettingWnd;
+        CChufangSettingWnd* pChufangFrame = new CChufangSettingWnd(1);
 
         if(pChufangFrame != NULL)
         {
@@ -592,6 +592,72 @@ void CMainWnd::HandleClickMsg(TNotifyUI& msg)
             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"否");
+				}
+			}
+		}
+	}
 	else if (name == _T("setting_chufang_printer_item_delete_btn"))
 	{
 		CListUI* pPrinterList = static_cast<CListUI*>(m_pm.FindControl(_T("setting_chufang_printer_list")));