张洋 2 лет назад
Родитель
Сommit
9eb1e8c51b

+ 96 - 30
bin/Win32/Debug/zhipuzi_pos_windows/skin/setting_kuaijiejian.xml

@@ -1,33 +1,99 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Window>
-	<HorizontalLayout height="44" padding="0,0,0,0">
-		<Label text="操作提示:点击要设置快捷键的操作,然后用键盘按出想要的快捷键即可完成设置" width="600" />
-	</HorizontalLayout>
-	
-	<Control height="1" bkcolor="#FF708090" padding="0,0,0,20" />
-	
-	<HorizontalLayout height="44">
-		<Label text="微信/支付宝/云闪付收款" width="260" />
-		<Button name="setting_kuaijiejian_page_btn_weixinshoukuan" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000"/>
-	</HorizontalLayout>
-	
-	<HorizontalLayout height="44">
-		<Label text="会员登录" width="260" />
-		<Button name="setting_kuaijiejian_page_btn_huiyuandenglu" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
-	</HorizontalLayout>
-	
-	<HorizontalLayout height="44">
-		<Label text="会员收款" width="260" />
-		<Button name="setting_kuaijiejian_page_btn_huiyuanshoukuan" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
-	</HorizontalLayout>
-	
-	<HorizontalLayout height="44">
-		<Label text="现金收款" width="260" />
-		<Button name="setting_kuaijiejian_page_btn_xianjinshoukuan" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
-	</HorizontalLayout>
-	
-	<HorizontalLayout height="44">
-		<Label text="打开钱箱" width="260" />
-		<Button name="setting_kuaijiejian_page_btn_qianxiang" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
-	</HorizontalLayout>
+	<VerticalLayout vscrollbar="true">
+		<HorizontalLayout height="44" padding="0,0,0,0">
+			<Label text="操作提示:点击选中要设置的操作,然后用键盘按出想要的快捷键即可" width="600" />
+		</HorizontalLayout>
+		
+		<HorizontalLayout height="44" padding="0,0,0,0">
+			<Label text="【选中后按 Back 或 Del 也可以删除快捷键】" width="600" />
+		</HorizontalLayout>
+		
+		<Control height="1" bkcolor="#FF708090" padding="0,0,0,20" />
+		
+		<HorizontalLayout height="44">
+			<Label text="微信/支付宝/云闪付收款" width="260" />
+			<Button name="setting_kuaijiejian_page_btn_weixinshoukuan" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000"/>
+		</HorizontalLayout>
+		
+		<HorizontalLayout height="44">
+			<Label text="会员收款" width="260" />
+			<Button name="setting_kuaijiejian_page_btn_huiyuanshoukuan" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
+		</HorizontalLayout>
+		
+		<HorizontalLayout height="44">
+			<Label text="现金收款" width="260" />
+			<Button name="setting_kuaijiejian_page_btn_xianjinshoukuan" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
+		</HorizontalLayout>
+		
+		<HorizontalLayout height="44">
+			<Label text="会员登录" width="260" />
+			<Button name="setting_kuaijiejian_page_btn_huiyuandenglu" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
+		</HorizontalLayout>
+		
+		<HorizontalLayout height="44">
+			<Label text="打开钱箱" width="260" />
+			<Button name="setting_kuaijiejian_page_btn_qianxiang" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
+		</HorizontalLayout>
+		
+		<HorizontalLayout height="44">
+			<Label text="退出登录" width="260" />
+			<Button name="setting_kuaijiejian_page_btn_logout" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
+		</HorizontalLayout>
+		
+		<HorizontalLayout height="44">
+			<Label text="跳转【点单】页面" width="260" />
+			<Button name="setting_kuaijiejian_page_btn_tiaozhuan_diandan" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
+		</HorizontalLayout>
+		
+		<HorizontalLayout height="44">
+			<Label text="跳转【订单】页面" width="260" />
+			<Button name="setting_kuaijiejian_page_btn_tiaozhuan_dingdan" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
+		</HorizontalLayout>
+		
+		<HorizontalLayout height="44">
+			<Label text="跳转【会员】页面" width="260" />
+			<Button name="setting_kuaijiejian_page_btn_tiaozhuan_huiyuan" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
+		</HorizontalLayout>
+		
+		<HorizontalLayout height="44">
+			<Label text="跳转【报表】页面" width="260" />
+			<Button name="setting_kuaijiejian_page_btn_tiaozhuan_baobiao" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
+		</HorizontalLayout>
+		
+		<HorizontalLayout height="44">
+			<Label text="跳转【交班】页面" width="260" />
+			<Button name="setting_kuaijiejian_page_btn_tiaozhuan_jiaoban" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
+		</HorizontalLayout>
+		
+		<HorizontalLayout height="44">
+			<Label text="跳转【设置】页面" width="260" />
+			<Button name="setting_kuaijiejian_page_btn_tiaozhuan_shezhi" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
+		</HorizontalLayout>
+		
+		<HorizontalLayout height="44">
+			<Label text="跳转【商品】页面" width="260" />
+			<Button name="setting_kuaijiejian_page_btn_tiaozhuan_shangpin" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
+		</HorizontalLayout>
+		
+		<HorizontalLayout height="44">
+			<Label text="跳转【库存】页面" width="260" />
+			<Button name="setting_kuaijiejian_page_btn_tiaozhuan_kucun" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
+		</HorizontalLayout>
+		
+		<HorizontalLayout height="44">
+			<Label text="跳转【采购】页面" width="260" />
+			<Button name="setting_kuaijiejian_page_btn_tiaozhuan_caigou" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
+		</HorizontalLayout>
+		
+		<HorizontalLayout height="44">
+			<Label text="跳转【桌台】页面" width="260" />
+			<Button name="setting_kuaijiejian_page_btn_tiaozhuan_zhuotai" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
+		</HorizontalLayout>
+		
+		<HorizontalLayout height="44">
+			<Label text="跳转【收款】页面" width="260" />
+			<Button name="setting_kuaijiejian_page_btn_tiaozhuan_shoukuan" align="center" width="200" height="38" padding="0,3,0,3" text="" normalimage="" hotimage="" pushedimage="" focusedimage="" bordersize="1" bordercolor="#FFA9A9A9" focusbordercolor="#FFFF0000" />
+		</HorizontalLayout>
+	</VerticalLayout>
 </Window>

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

@@ -31,7 +31,7 @@
 
 					<Control height="30"></Control>
 					
-					<Button name="setting_logout" padding="20,30,20,30" height="52" text="退出登" textcolor="#FFFFFFFF" normalimage="file='btn_border_red.png' corner='5,5,5,5'" hotimage="file='btn_border_red_Hover.png' corner='5,5,5,5'" pushedimage="file='btn_border_red_Click.png' corner='5,5,5,5'" />
+					<Button name="setting_logout" padding="20,30,20,30" height="52" text="退出登" textcolor="#FFFFFFFF" normalimage="file='btn_border_red.png' corner='5,5,5,5'" hotimage="file='btn_border_red_Hover.png' corner='5,5,5,5'" pushedimage="file='btn_border_red_Click.png' corner='5,5,5,5'" />
 				</VerticalLayout>
 			</HorizontalLayout>
 

+ 13 - 0
zhipuzi_pos_windows/helper/CLewaimaiString.cpp

@@ -651,4 +651,17 @@ std::wstring CLewaimaiString::ShuziInputFormat(std::wstring old, std::wstring in
 		//还没有小数点
 		return old + input;
 	}
+}
+
+bool CLewaimaiString::is_only_number(string str)
+{
+	for (int i = 0; i < str.size(); i++)
+	{
+		if ((str.at(i) > '9') || (str.at(i) < '0'))
+		{
+			return false;
+		}
+	}
+
+	return true;
 }

+ 3 - 0
zhipuzi_pos_windows/helper/CLewaimaiString.h

@@ -74,4 +74,7 @@ public:
 
 	//对于一个是数字的字符串,通过键盘输入一个新的字符之后,求新的数字字符串,主要是考虑各种异常数字格式的问题,返回值是新的有效的数字
 	static std::wstring ShuziInputFormat(std::wstring old, std::wstring input);
+
+	//判断一个字符串是否是纯数字组成的
+	static bool is_only_number(string str);
 };

+ 13 - 1
zhipuzi_pos_windows/helper/define.h

@@ -51,4 +51,16 @@
 #define WM_MYHOTKEY_HUIYUAN_DENGLU 10802
 #define WM_MYHOTKEY_HUIYUAN_SHOUKUAN 10803
 #define WM_MYHOTKEY_XIANJIN_SHOUKUAN 10804
-#define WM_MYHOTKEY_QIANXIANG 10805
+#define WM_MYHOTKEY_QIANXIANG 10805
+#define WM_MYHOTKEY_LOGOUT 10806
+#define WM_MYHOTKEY_DIANDAN 10807
+#define WM_MYHOTKEY_DINGDAN 10808
+#define WM_MYHOTKEY_HUIYUAN 10809
+#define WM_MYHOTKEY_BAOBIAO 10810
+#define WM_MYHOTKEY_JIAOBAN 10811
+#define WM_MYHOTKEY_SHEZHI 10812
+#define WM_MYHOTKEY_SHANGPIN 10813
+#define WM_MYHOTKEY_KUCUN 10814
+#define WM_MYHOTKEY_CAIGOU 10815
+#define WM_MYHOTKEY_ZHUOTAI 10816
+#define WM_MYHOTKEY_SHOUKUAN 10817

BIN
zhipuzi_pos_windows/page/CDiandanPageUI.cpp


BIN
zhipuzi_pos_windows/page/CSettingPageUI.cpp


+ 4 - 1
zhipuzi_pos_windows/page/CSettingPageUI.h

@@ -63,6 +63,9 @@ private:
 	UINT m_vk = 0;
 	bool m_isSet = false;
 
-	//当前设置快捷键的状态 1:微信收款 2会员登录 3会员收款 4现金收款
+	/*
+	 *当前设置快捷键的状态 1:微信收款 2会员登录 3会员收款 4现金收款 5钱箱 6退出登录 7点单页面 8订单页面 9会员页面 10报表页面 11交班页面
+	 *12设置页面 13商品页面 14库存页面 15采购页面 16桌台页面 17收款页面
+	 **/
 	int m_kuaijiejian_type;
 };

+ 39 - 22
zhipuzi_pos_windows/page/CShangpinPageUI.cpp

@@ -193,24 +193,49 @@ void CShangpinPageUI::InitFoodShow()
 	}
 	else if (m_cur_type_id == "sousuo")
 	{
-		//展示的是商品搜索的结果
-		CSqlite3 sqlite;
-		std::vector<CFood> foodlist = sqlite.GetFoodByFoodname(m_sousuo_foodname);
+		if (CLewaimaiString::is_only_number(m_sousuo_foodname))
+		{
+			//说明是纯数字,按商品条码来搜索
+			CSqlite3 sqlite;
+			CFood food;
 
-		for (std::vector<CFood>::iterator it = foodlist.begin(); it != foodlist.end(); it++)
+			bool ret = sqlite.GetFoodByBarcode(m_sousuo_foodname, food);
+
+			if (ret)
+			{
+				CDialogBuilder builder;
+				CDialogBuilderCallbackEx cb;
+
+				CShangpinFoodItemUI* pItem = static_cast<CShangpinFoodItemUI*>(builder.Create(xml_name.c_str(), (UINT)0, &cb, m_pManager));
+
+				pItem->SetYoutuModel(is_youtu);
+				pItem->SetFoodInfo(food);
+				pItem->UpdateShow();
+
+				m_foodLayout->Add(pItem);
+			}
+		}
+		else
 		{
-			CFood food = *it;
+			//当商品名字来搜索
+			CSqlite3 sqlite;
+			std::vector<CFood> foodlist = sqlite.GetFoodByFoodname(m_sousuo_foodname);
 
-			CDialogBuilder builder;
-			CDialogBuilderCallbackEx cb;
+			for (std::vector<CFood>::iterator it = foodlist.begin(); it != foodlist.end(); it++)
+			{
+				CFood food = *it;
 
-			CShangpinFoodItemUI* pItem = static_cast<CShangpinFoodItemUI*>(builder.Create(xml_name.c_str(), (UINT)0, &cb, m_pManager));
+				CDialogBuilder builder;
+				CDialogBuilderCallbackEx cb;
 
-			pItem->SetYoutuModel(is_youtu);
-			pItem->SetFoodInfo(food);
-			pItem->UpdateShow();
+				CShangpinFoodItemUI* pItem = static_cast<CShangpinFoodItemUI*>(builder.Create(xml_name.c_str(), (UINT)0, &cb, m_pManager));
 
-			m_foodLayout->Add(pItem);
+				pItem->SetYoutuModel(is_youtu);
+				pItem->SetFoodInfo(food);
+				pItem->UpdateShow();
+
+				m_foodLayout->Add(pItem);
+			}
 		}
 	}
 	else
@@ -357,13 +382,9 @@ void CShangpinPageUI::StartSearchFood(std::string foodname)
 	pClear->SetVisible(true);
 
 	//隐藏商品分类展示
-	CHorizontalLayoutUI* pFoodtype = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("shangpin_fenlei_layout")));
+	CVerticalLayoutUI* pFoodtype = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("shangpin_fenlei_layout_scrolllayout")));
 	pFoodtype->SetVisible(false);
 
-	//隐藏新建分类按钮
-	CHorizontalLayoutUI* pNewType = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("shangpin_page_add_type_layout")));
-	pNewType->SetVisible(false);
-
 	if (m_cur_type_id != "sousuo")
 	{
 		m_type_id_before_sousuo = m_cur_type_id;
@@ -387,13 +408,9 @@ void CShangpinPageUI::StopSerachFood()
 	pClear->SetVisible(false);
 
 	//展示商品分类展示
-	CHorizontalLayoutUI* pFoodtype = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("shangpin_fenlei_layout")));
+	CVerticalLayoutUI* pFoodtype = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("shangpin_fenlei_layout_scrolllayout")));
 	pFoodtype->SetVisible(true);
 
-	//展示新建分类按钮
-	CHorizontalLayoutUI* pNewType = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("shangpin_page_add_type_layout")));
-	pNewType->SetVisible(true);
-
 	m_cur_type_id = m_type_id_before_sousuo;
 
 	CLabelUI* pTishi = static_cast<CLabelUI*>(this->FindSubControl(_T("shangpin_food_search_tishi")));

+ 22 - 0
zhipuzi_pos_windows/page/CShoukuanPageUI.cpp

@@ -284,6 +284,28 @@ bool CShoukuanPageUI::HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lPara
 			return true;
 		}
 	}
+	else if (uMsg == WM_MYHOTKEY_WEIXIN_SHOUKUAN)
+	{
+		StartWeixinzhifuShoukuan();
+
+		return true;
+	}
+	else if (uMsg == WM_MYHOTKEY_HUIYUAN_DENGLU)
+	{
+		
+	}
+	else if (uMsg == WM_MYHOTKEY_HUIYUAN_SHOUKUAN)
+	{
+		StartHuiyuanShoukuan();
+
+		return true;
+	}
+	else if (uMsg == WM_MYHOTKEY_XIANJIN_SHOUKUAN)
+	{
+		StartXianjinShoukuan();
+
+		return true;
+	}
 
 	return false;
 }

+ 69 - 14
zhipuzi_pos_windows/page/CZhengcanDiandanPageUI.cpp

@@ -426,24 +426,49 @@ void CZhengcanDiandanPageUI::InitFoodShow()
 	}
 	else if (m_cur_type_id == "sousuo")
 	{
-		//展示的是商品搜索的结果
-		CSqlite3 sqlite;
-		std::vector<CFood> foodlist = sqlite.GetFoodByFoodname(m_sousuo_foodname);
+		if (CLewaimaiString::is_only_number(m_sousuo_foodname))
+		{
+			//说明是纯数字,按商品条码来搜索
+			CSqlite3 sqlite;
+			CFood food;
 
-		for (std::vector<CFood>::iterator it = foodlist.begin(); it != foodlist.end(); it++)
+			bool ret = sqlite.GetFoodByBarcode(m_sousuo_foodname, food);
+
+			if (ret)
+			{
+				CDialogBuilder builder;
+				CDialogBuilderCallbackEx cb;
+
+				CDiandanFoodItemUI* pItem = static_cast<CDiandanFoodItemUI*>(builder.Create(xml_name.c_str(), (UINT)0, &cb, m_pManager));
+
+				pItem->SetYoutuModel(is_youtu);
+				pItem->SetFoodInfo(food);
+				pItem->UpdateShow();
+
+				m_foodLayout->Add(pItem);
+			}
+		}
+		else
 		{
-			CFood food = *it;
+			//当商品名字来搜索
+			CSqlite3 sqlite;
+			std::vector<CFood> foodlist = sqlite.GetFoodByFoodname(m_sousuo_foodname);
 
-			CDialogBuilder builder;
-			CDialogBuilderCallbackEx cb;
+			for (std::vector<CFood>::iterator it = foodlist.begin(); it != foodlist.end(); it++)
+			{
+				CFood food = *it;
 
-			CDiandanFoodItemUI* pItem = static_cast<CDiandanFoodItemUI*>(builder.Create(xml_name.c_str(), (UINT)0, &cb, m_pManager));
+				CDialogBuilder builder;
+				CDialogBuilderCallbackEx cb;
 
-			pItem->SetYoutuModel(is_youtu);
-			pItem->SetFoodInfo(food);
-			pItem->UpdateShow();
+				CDiandanFoodItemUI* pItem = static_cast<CDiandanFoodItemUI*>(builder.Create(xml_name.c_str(), (UINT)0, &cb, m_pManager));
 
-			m_foodLayout->Add(pItem);
+				pItem->SetYoutuModel(is_youtu);
+				pItem->SetFoodInfo(food);
+				pItem->UpdateShow();
+
+				m_foodLayout->Add(pItem);
+			}
 		}
 	}
 	else
@@ -1239,6 +1264,36 @@ void CZhengcanDiandanPageUI::HandleTextCapture(std::string content)
 	this->StartWeixinzhifuShoukuan(content);
 }
 
+bool CZhengcanDiandanPageUI::HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+	if (uMsg == WM_MYHOTKEY_WEIXIN_SHOUKUAN)
+	{
+		StartWeixinzhifuShoukuan();
+
+		return true;
+	}
+	else if (uMsg == WM_MYHOTKEY_HUIYUAN_DENGLU)
+	{
+		ClickMemberLogin();
+
+		return true;
+	}
+	else if (uMsg == WM_MYHOTKEY_HUIYUAN_SHOUKUAN)
+	{
+		StartHuiyuanShoukuan();
+
+		return true;
+	}
+	else if (uMsg == WM_MYHOTKEY_XIANJIN_SHOUKUAN)
+	{
+		StartXianjinShoukuan();
+
+		return true;
+	}
+
+	return false;
+}
+
 void CZhengcanDiandanPageUI::UpdateShopcartShow()
 {
 	//先保留选中
@@ -4254,7 +4309,7 @@ void CZhengcanDiandanPageUI::StartSearchFood(std::string foodname)
 	pClear->SetVisible(true);
 
 	//隐藏商品分类展示
-	CHorizontalLayoutUI* pFoodtype = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("diandan_fenlei_layout")));
+	CVerticalLayoutUI* pFoodtype = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("diandan_fenlei_layout_scrolllayout")));
 	pFoodtype->SetVisible(false);
 
 	if (m_cur_type_id != "sousuo")
@@ -4280,7 +4335,7 @@ void CZhengcanDiandanPageUI::StopSerachFood()
 	pClear->SetVisible(false);
 
 	//展示商品分类展示
-	CHorizontalLayoutUI* pFoodtype = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("diandan_fenlei_layout")));
+	CVerticalLayoutUI* pFoodtype = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("diandan_fenlei_layout_scrolllayout")));
 	pFoodtype->SetVisible(true);
 
 	m_cur_type_id = m_type_id_before_sousuo;

+ 1 - 4
zhipuzi_pos_windows/page/CZhengcanDiandanPageUI.h

@@ -69,10 +69,7 @@ public:
 	void HandleTextCapture(std::string content);
 
 	//处理自定义消息,各个页面处理各个页面自己的(是自己处理的消息返回true,不是自己处理的消息返回false)
-	bool HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
-	{
-		return false;
-	}
+	bool HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam);
 
 	//对订单做了任何改变之后,刷新购物车显示
 	void UpdateShopcartShow();

+ 156 - 0
zhipuzi_pos_windows/tool/CSetting.cpp

@@ -409,6 +409,162 @@ void CSetting::Init()
 		m_paramsMap[setting_kuaijiejian_qianxiang_vk] = "87";
 	}
 
+	//快捷键相关的设置(退出登录默认CTRL+L)
+	std::string setting_kuaijiejian_logout_mod = "setting_kuaijiejian_logout_mod";
+	if (m_paramsMap.find(setting_kuaijiejian_logout_mod) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_logout_mod] = "2";
+	}
+
+	std::string setting_kuaijiejian_logout_vk = "setting_kuaijiejian_logout_vk";
+	if (m_paramsMap.find(setting_kuaijiejian_logout_vk) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_logout_vk] = "76";
+	}
+
+	//快捷键相关的设置(点单页面,默认为空)
+	std::string setting_kuaijiejian_diandan_mod = "setting_kuaijiejian_diandan_mod";
+	if (m_paramsMap.find(setting_kuaijiejian_diandan_mod) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_diandan_mod] = "";
+	}
+
+	std::string setting_kuaijiejian_diandan_vk = "setting_kuaijiejian_diandan_vk";
+	if (m_paramsMap.find(setting_kuaijiejian_diandan_vk) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_diandan_vk] = "";
+	}
+
+	//快捷键相关的设置(订单页面,默认为空)
+	std::string setting_kuaijiejian_dingdan_mod = "setting_kuaijiejian_dingdan_mod";
+	if (m_paramsMap.find(setting_kuaijiejian_dingdan_mod) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_dingdan_mod] = "";
+	}
+
+	std::string setting_kuaijiejian_dingdan_vk = "setting_kuaijiejian_dingdan_vk";
+	if (m_paramsMap.find(setting_kuaijiejian_dingdan_vk) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_dingdan_vk] = "";
+	}
+
+	//快捷键相关的设置(会员页面,默认为空)
+	std::string setting_kuaijiejian_huiyuan_mod = "setting_kuaijiejian_huiyuan_mod";
+	if (m_paramsMap.find(setting_kuaijiejian_huiyuan_mod) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_huiyuan_mod] = "";
+	}
+
+	std::string setting_kuaijiejian_huiyuan_vk = "setting_kuaijiejian_huiyuan_vk";
+	if (m_paramsMap.find(setting_kuaijiejian_huiyuan_vk) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_huiyuan_vk] = "";
+	}
+
+	//快捷键相关的设置(报表页面,默认为空)
+	std::string setting_kuaijiejian_baobiao_mod = "setting_kuaijiejian_baobiao_mod";
+	if (m_paramsMap.find(setting_kuaijiejian_baobiao_mod) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_baobiao_mod] = "";
+	}
+
+	std::string setting_kuaijiejian_baobiao_vk = "setting_kuaijiejian_baobiao_vk";
+	if (m_paramsMap.find(setting_kuaijiejian_baobiao_vk) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_baobiao_vk] = "";
+	}
+
+	//快捷键相关的设置(交班页面,默认为空)
+	std::string setting_kuaijiejian_jiaoban_mod = "setting_kuaijiejian_jiaoban_mod";
+	if (m_paramsMap.find(setting_kuaijiejian_jiaoban_mod) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_jiaoban_mod] = "";
+	}
+
+	std::string setting_kuaijiejian_jiaoban_vk = "setting_kuaijiejian_jiaoban_vk";
+	if (m_paramsMap.find(setting_kuaijiejian_jiaoban_vk) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_jiaoban_vk] = "";
+	}
+
+	//快捷键相关的设置(设置页面,默认为空)
+	std::string setting_kuaijiejian_shezhi_mod = "setting_kuaijiejian_shezhi_mod";
+	if (m_paramsMap.find(setting_kuaijiejian_shezhi_mod) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_shezhi_mod] = "";
+	}
+
+	std::string setting_kuaijiejian_shezhi_vk = "setting_kuaijiejian_shezhi_vk";
+	if (m_paramsMap.find(setting_kuaijiejian_shezhi_vk) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_shezhi_vk] = "";
+	}
+
+	//快捷键相关的设置(商品页面,默认为空)
+	std::string setting_kuaijiejian_shangpin_mod = "setting_kuaijiejian_shangpin_mod";
+	if (m_paramsMap.find(setting_kuaijiejian_shangpin_mod) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_shangpin_mod] = "";
+	}
+
+	std::string setting_kuaijiejian_shangpin_vk = "setting_kuaijiejian_shangpin_vk";
+	if (m_paramsMap.find(setting_kuaijiejian_shangpin_vk) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_shangpin_vk] = "";
+	}
+
+	//快捷键相关的设置(库存页面,默认为空)
+	std::string setting_kuaijiejian_kucun_mod = "setting_kuaijiejian_kucun_mod";
+	if (m_paramsMap.find(setting_kuaijiejian_kucun_mod) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_kucun_mod] = "";
+	}
+
+	std::string setting_kuaijiejian_kucun_vk = "setting_kuaijiejian_kucun_vk";
+	if (m_paramsMap.find(setting_kuaijiejian_kucun_vk) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_kucun_vk] = "";
+	}
+
+	//快捷键相关的设置(采购页面,默认为空)
+	std::string setting_kuaijiejian_caigou_mod = "setting_kuaijiejian_caigou_mod";
+	if (m_paramsMap.find(setting_kuaijiejian_caigou_mod) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_caigou_mod] = "";
+	}
+
+	std::string setting_kuaijiejian_caigou_vk = "setting_kuaijiejian_caigou_vk";
+	if (m_paramsMap.find(setting_kuaijiejian_caigou_vk) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_caigou_vk] = "";
+	}
+
+	//快捷键相关的设置(桌台页面,默认为空)
+	std::string setting_kuaijiejian_zhuotai_mod = "setting_kuaijiejian_zhuotai_mod";
+	if (m_paramsMap.find(setting_kuaijiejian_zhuotai_mod) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_zhuotai_mod] = "";
+	}
+
+	std::string setting_kuaijiejian_zhuotai_vk = "setting_kuaijiejian_zhuotai_vk";
+	if (m_paramsMap.find(setting_kuaijiejian_zhuotai_vk) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_zhuotai_vk] = "";
+	}
+
+	//快捷键相关的设置(收款页面,默认为空)
+	std::string setting_kuaijiejian_shoukuan_mod = "setting_kuaijiejian_shoukuan_mod";
+	if (m_paramsMap.find(setting_kuaijiejian_shoukuan_mod) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_shoukuan_mod] = "";
+	}
+
+	std::string setting_kuaijiejian_shoukuan_vk = "setting_kuaijiejian_shoukuan_vk";
+	if (m_paramsMap.find(setting_kuaijiejian_shoukuan_vk) == m_paramsMap.end())
+	{
+		m_paramsMap[setting_kuaijiejian_shoukuan_vk] = "";
+	}
+
 	//点单页面关于抹零的设置 0 不抹零 1 抹零到角 2 抹零到元
 	std::string diandan_moling_type = "diandan_moling_type";
 	if (m_paramsMap.find(diandan_moling_type) == m_paramsMap.end())

+ 159 - 0
zhipuzi_pos_windows/wnd/CMainWnd.cpp

@@ -906,6 +906,57 @@ LRESULT CMainWnd::OnHotKey(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandl
 		CPosPrinter printer;
 		printer.OpenQianxiang();
 	}
+	else if (wParam == WM_MYHOTKEY_LOGOUT)
+	{
+		//退出登录
+		this->LoginOut(1);
+	}
+	else if (wParam == WM_MYHOTKEY_DIANDAN)
+	{
+		this->SwitchPageByName(L"main_diandan");
+	}
+	else if (wParam == WM_MYHOTKEY_DINGDAN)
+	{
+		this->SwitchPageByName(L"main_dingdan");
+	}
+	else if (wParam == WM_MYHOTKEY_HUIYUAN)
+	{
+		this->SwitchPageByName(L"main_huiyuan");
+	}
+	else if (wParam == WM_MYHOTKEY_BAOBIAO)
+	{
+		this->SwitchPageByName(L"main_baobiao");
+	}
+	else if (wParam == WM_MYHOTKEY_JIAOBAN)
+	{
+		this->SwitchPageByName(L"main_jiaoban");
+	}
+	else if (wParam == WM_MYHOTKEY_SHEZHI)
+	{
+		this->SwitchPageByName(L"main_setting");
+	}
+	else if (wParam == WM_MYHOTKEY_SHANGPIN)
+	{
+		this->SwitchPageByName(L"main_shangpin");
+	}
+	else if (wParam == WM_MYHOTKEY_KUCUN)
+	{
+		this->SwitchPageByName(L"main_kucun");
+	}
+	else if (wParam == WM_MYHOTKEY_CAIGOU)
+	{
+		this->SwitchPageByName(L"main_caigou");
+	}
+	else if (wParam == WM_MYHOTKEY_ZHUOTAI)
+	{
+		this->SwitchPageByName(L"main_zhengcan");
+	}
+	else if (wParam == WM_MYHOTKEY_SHOUKUAN)
+	{
+		this->SwitchPageByName(L"main_shoukuan");
+	}
+
+	m_pm.SetFocus(NULL);
 
 	bHandled = TRUE;
 	return  0;
@@ -1772,4 +1823,112 @@ void CMainWnd::UpdateRegisterHotKey()
 	UnregisterHotKey(m_hWnd, WM_MYHOTKEY_QIANXIANG);
 
 	RegisterHotKey(m_hWnd, WM_MYHOTKEY_QIANXIANG, qianxiang_mod, qianxiang_vk);
+
+	//退出登录
+	UINT logout_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_logout_mod").c_str());
+	UINT logout_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_logout_vk").c_str());
+
+	//先卸载旧的,再注册新的
+	UnregisterHotKey(m_hWnd, WM_MYHOTKEY_LOGOUT);
+
+	RegisterHotKey(m_hWnd, WM_MYHOTKEY_LOGOUT, logout_mod, logout_vk);
+
+	//点单页面
+	UINT diandan_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_diandan_mod").c_str());
+	UINT diandan_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_diandan_vk").c_str());
+
+	//先卸载旧的,再注册新的
+	UnregisterHotKey(m_hWnd, WM_MYHOTKEY_DIANDAN);
+
+	RegisterHotKey(m_hWnd, WM_MYHOTKEY_DIANDAN, diandan_mod, diandan_vk);
+
+	//订单页面
+	UINT dingdan_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_dingdan_mod").c_str());
+	UINT dingdan_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_dingdan_vk").c_str());
+
+	//先卸载旧的,再注册新的
+	UnregisterHotKey(m_hWnd, WM_MYHOTKEY_DINGDAN);
+
+	RegisterHotKey(m_hWnd, WM_MYHOTKEY_DINGDAN, dingdan_mod, dingdan_vk);
+
+	//会员页面
+	UINT huiyuan_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_huiyuan_mod").c_str());
+	UINT huiyuan_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_huiyuan_vk").c_str());
+
+	//先卸载旧的,再注册新的
+	UnregisterHotKey(m_hWnd, WM_MYHOTKEY_HUIYUAN);
+
+	RegisterHotKey(m_hWnd, WM_MYHOTKEY_HUIYUAN, huiyuan_mod, huiyuan_vk);
+
+	//报表页面
+	UINT baobiao_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_baobiao_mod").c_str());
+	UINT baobiao_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_baobiao_vk").c_str());
+
+	//先卸载旧的,再注册新的
+	UnregisterHotKey(m_hWnd, WM_MYHOTKEY_BAOBIAO);
+
+	RegisterHotKey(m_hWnd, WM_MYHOTKEY_BAOBIAO, baobiao_mod, baobiao_vk);
+
+	//交班页面
+	UINT jiaoban_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_jiaoban_mod").c_str());
+	UINT jiaoban_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_jiaoban_vk").c_str());
+
+	//先卸载旧的,再注册新的
+	UnregisterHotKey(m_hWnd, WM_MYHOTKEY_JIAOBAN);
+
+	RegisterHotKey(m_hWnd, WM_MYHOTKEY_JIAOBAN, jiaoban_mod, jiaoban_vk);
+
+	//设置页面
+	UINT shezhi_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_shezhi_mod").c_str());
+	UINT shezhi_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_shezhi_vk").c_str());
+
+	//先卸载旧的,再注册新的
+	UnregisterHotKey(m_hWnd, WM_MYHOTKEY_SHEZHI);
+
+	RegisterHotKey(m_hWnd, WM_MYHOTKEY_SHEZHI, shezhi_mod, shezhi_vk);
+
+	//商品页面
+	UINT shangpin_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_shangpin_mod").c_str());
+	UINT shangpin_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_shangpin_vk").c_str());
+
+	//先卸载旧的,再注册新的
+	UnregisterHotKey(m_hWnd, WM_MYHOTKEY_SHANGPIN);
+
+	RegisterHotKey(m_hWnd, WM_MYHOTKEY_SHANGPIN, shangpin_mod, shangpin_vk);
+
+	//库存页面
+	UINT kucun_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_kucun_mod").c_str());
+	UINT kucun_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_kucun_vk").c_str());
+
+	//先卸载旧的,再注册新的
+	UnregisterHotKey(m_hWnd, WM_MYHOTKEY_KUCUN);
+
+	RegisterHotKey(m_hWnd, WM_MYHOTKEY_KUCUN, kucun_mod, kucun_vk);
+
+	//采购页面
+	UINT caigou_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_caigou_mod").c_str());
+	UINT caigou_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_caigou_vk").c_str());
+
+	//先卸载旧的,再注册新的
+	UnregisterHotKey(m_hWnd, WM_MYHOTKEY_CAIGOU);
+
+	RegisterHotKey(m_hWnd, WM_MYHOTKEY_CAIGOU, caigou_mod, caigou_vk);
+
+	//桌台页面
+	UINT zhuotai_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_zhuotai_mod").c_str());
+	UINT zhuotai_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_zhuotai_vk").c_str());
+
+	//先卸载旧的,再注册新的
+	UnregisterHotKey(m_hWnd, WM_MYHOTKEY_ZHUOTAI);
+
+	RegisterHotKey(m_hWnd, WM_MYHOTKEY_ZHUOTAI, zhuotai_mod, zhuotai_vk);
+
+	//收款页面
+	UINT shoukuan_mod = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_shoukuan_mod").c_str());
+	UINT shoukuan_vk = (UINT)atoi(CSetting::GetInstance()->GetParam("setting_kuaijiejian_shoukuan_vk").c_str());
+
+	//先卸载旧的,再注册新的
+	UnregisterHotKey(m_hWnd, WM_MYHOTKEY_SHOUKUAN);
+
+	RegisterHotKey(m_hWnd, WM_MYHOTKEY_SHOUKUAN, shoukuan_mod, shoukuan_vk);
 }