张洋 vor 3 Jahren
Ursprung
Commit
344597d4c3

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

@@ -21,7 +21,7 @@
 		<HorizontalLayout height="70" valign="center" padding="15,0,0,0">
 			<Label name="guandan_order_zongjia" text="" width="200" height="70"></Label>
 			<Control></Control>
-			<Button name="guadan_order_delete" align="center" width="120" height="45" padding="0,13,0,0" text="删除此单" normalimage="file='btn_border_white.png' corner='5,5,5,5'" hotimage="file='btn_border_white_Hover.png' corner='5,5,5,5'" pushedimage="file='btn_border_white_Click.png' corner='5,5,5,5'" />
+			<Button name="guadan_order_delete" textcolor="#FFFFFFFF" align="center" width="120" height="45" padding="0,13,0,0" text="删除此单" 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="guadan_order_queren" textcolor="#FFFFFFFF" align="center" width="120" height="45" padding="20,13,20,0" text="取出此单" normalimage="file='btn_green_zhengchang.png' corner='5,5,5,5'" hotimage="file='btn_green_xuanfu.png' corner='5,5,5,5'" pushedimage="file='btn_green_dianji.png' corner='5,5,5,5'" />
 		</HorizontalLayout>
 	</VerticalLayout>

+ 18 - 0
bin/Win32/Debug/zhipuzi_pos_windows/skin/zhengcan_saomadiancan_wnd.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Window size="700,650" caption="0,0,0,36" roundcorner="4,4" >
+	<Font id="0" name="微软雅黑" size="22" />
+	<Font id="1" name="微软雅黑" size="32" />
+	
+	<VerticalLayout bkimage="shoukuan_bkg.png" >
+		<HorizontalLayout name="shoukuan_title_bkg" height="44" bkcolor="0xFF3CB371">
+			<Label name="memo_dlg_title" text="" height="44" align="center" valign="center" padding="0,0,0,0" textcolor="#FFFFFFFF" font="2"/>
+			<Button name="closebtn" keyboard="false" padding="0,13,15,0" width="16" height="16" normalimage="file='close_normal.png'" hotimage="file='close_hover.png'" pushedimage="file='close_normal.png'"/>
+		</HorizontalLayout>
+		
+		<VerticalLayout name="zhengcan_saomadiancan_wnd_layout" vscrollbar="true" padding="0,10,0,10">
+		
+		</VerticalLayout>
+		
+		
+	</VerticalLayout>
+</Window>

+ 11 - 0
bin/Win32/Debug/zhipuzi_pos_windows/skin/zhengcan_saomadiancan_wnd_food_item.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Window size="700,650" caption="0,0,0,36" roundcorner="4,4" >
+	<Font id="0" name="微软雅黑" size="26" />
+	<Font id="1" name="微软雅黑" size="32" />
+	
+	<HorizontalLayout name="zhengcan_saomadiancanfood_item" bkcolor="#FFFFFFFF" height="40" padding="15,0,15,0">
+		<Label name="food_name" width="350"></Label>
+		<Label name="food_num" width="150"></Label>
+		<Label name="food_price" width="250"></Label>
+	</HorizontalLayout>
+</Window>

+ 26 - 0
bin/Win32/Debug/zhipuzi_pos_windows/skin/zhengcan_saomadiancan_wnd_order_item.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Window size="700,800" caption="0,0,0,36" roundcorner="4,4" >
+	<Font id="0" name="微软雅黑" size="26" />
+	<Font id="1" name="微软雅黑" size="32" />
+	
+	<VerticalLayout name="zhengcan_saomadiancanorder_layout" bkcolor="#FFFFFFFF" padding="30,20,30,0" bordersize="1" bordercolor="#FFEAEAEA">
+		<HorizontalLayout>
+			<Label name="zhengcan_saomadiancanorder_time" text="" width="300" height="40" padding="20,0,0,0"></Label>
+			<Control></Control>
+		</HorizontalLayout>
+		
+		<Control height="1" bkcolor="#FFEAEAEA" padding="15,0,15,0"></Control>
+		
+		<VerticalLayout name="zhengcan_saomadiancanfoodlist_layout">
+		
+		</VerticalLayout>
+		
+		<Control height="1" bkcolor="#FFEAEAEA" padding="15,0,15,0"></Control>
+		
+		<HorizontalLayout height="70" valign="center" padding="15,0,0,0">
+			<Control></Control>
+			<Button name="zhengcan_saomadiancanorder_delete" textcolor="#FFFFFFFF" align="center" width="120" height="45" padding="0,13,0,0" text="作废" 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="zhengcan_saomadiancanorder_queren" textcolor="#FFFFFFFF" align="center" width="120" height="45" padding="20,13,20,0" text="确认下单" normalimage="file='btn_green_zhengchang.png' corner='5,5,5,5'" hotimage="file='btn_green_xuanfu.png' corner='5,5,5,5'" pushedimage="file='btn_green_dianji.png' corner='5,5,5,5'" />
+		</HorizontalLayout>
+	</VerticalLayout>
+</Window>

+ 26 - 0
zhipuzi_pos_windows/page/CZhengcanPageUI.cpp

@@ -7,6 +7,7 @@
 
 #include "../wnd/CZhengcanKaitaiWnd.h"
 #include "../wnd/CAttentionWnd.h"
+#include "../wnd/CZhengcanSaomadiancanWnd.h"
 
 CZhengcanPageUI::CZhengcanPageUI()
 {
@@ -828,7 +829,32 @@ void CZhengcanPageUI::SaomadiancanClick()
 		return;
 	}
 
+	//弹框对扫码点餐的进行处理
+	CZhengcanSaomadiancanWnd* pSaomadiancanDlg = new CZhengcanSaomadiancanWnd();
 
+	if (pSaomadiancanDlg != NULL)
+	{
+		pSaomadiancanDlg->SetPageUI(this);
+
+		pSaomadiancanDlg->Create(m_pManager->GetPaintWindow(), _T(""), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
+		pSaomadiancanDlg->SetIcon(IDI_ICON_DUILIB);
+		pSaomadiancanDlg->CenterWindow();
+
+		pSaomadiancanDlg->SetTitle(L"扫码点餐待处理");
+
+		UINT ret = pSaomadiancanDlg->ShowModal();
+
+		if (ret == IDOK)
+		{
+			
+			delete pSaomadiancanDlg;
+		}
+		else
+		{
+			
+			delete pSaomadiancanDlg;
+		}
+	}
 }
 
 void CZhengcanPageUI::UpdateSaomadiancanNum()

+ 302 - 0
zhipuzi_pos_windows/wnd/CZhengcanSaomadiancanWnd.cpp

@@ -0,0 +1,302 @@
+#include "../pch/pch.h"
+#include "CZhengcanSaomadiancanWnd.h"
+
+#include "../page/CDiandanPageUI.h"
+
+LRESULT CZhengcanSaomadiancanWnd::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);
+
+	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;
+		}
+	}
+
+	return HTCLIENT;
+}
+
+LRESULT CZhengcanSaomadiancanWnd::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 CZhengcanSaomadiancanWnd::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 CZhengcanSaomadiancanWnd::MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool& bHandled)
+{
+	if (uMsg == WM_KEYDOWN)
+	{
+		if (wParam == VK_RETURN)
+		{
+			return true;
+		}
+		else if (wParam == VK_ESCAPE)
+		{
+			Close(IDCANCEL);
+			return true;
+		}
+	}
+
+	return false;
+}
+
+LRESULT CZhengcanSaomadiancanWnd::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.AddPreMessageFilter(this);
+
+	CDialogBuilder builder;
+
+	CControlUI* pRoot = builder.Create(_T("zhengcan_saomadiancan_wnd.xml"), (UINT)0, NULL, &m_pm);
+	ASSERT(pRoot && "Failed to parse XML");
+
+	// 把这些控件绘制到本窗口上
+	m_pm.AttachDialog(pRoot);
+
+	// 把自己加入到CPaintManagerUI的m_aNotifiers数组中,用于处理Notify函数
+	m_pm.AddNotifier(this);
+
+	Init();
+
+	return 0;
+}
+
+void CZhengcanSaomadiancanWnd::Notify(TNotifyUI& msg)
+{
+	if (msg.sType == _T("click"))
+	{
+		DuiLib::CDuiString senderName = msg.pSender->GetName();
+
+		if (senderName == _T("closebtn"))
+		{
+			Close(IDCANCEL);
+			return;
+		}
+		else if (senderName == _T("save"))
+		{
+
+		}
+		else if (senderName == _T("zhengcan_saomadiancanorder_delete"))
+		{
+			
+		}
+		else if (senderName == _T("zhengcan_saomadiancanorder_queren"))
+		{
+			
+
+			Close(IDOK);
+		}
+	}
+	else if (msg.sType == _T("textchanged"))
+	{
+
+	}
+}
+
+void CZhengcanSaomadiancanWnd::Init()
+{
+	RefreshOrder();
+}
+
+void CZhengcanSaomadiancanWnd::RefreshOrder()
+{
+	//请求服务器获取所有未处理的订单信息
+	std::map<string, string> params;
+
+	params["order_id"] = "0";
+
+	std::string response;
+
+	std::string url = "/dinnercash/getnothandleorderlist";
+	bool ret = CZhipuziHttpClient::GetInstance()->Request(url.c_str(), params, response);
+	if (ret == false)
+	{
+		return;
+	}
+
+	rapidjson::Document document;
+	document.Parse(response.c_str());
+
+	if (document.HasParseError())
+	{
+		LOG_INFO("parse response error!");
+		return;
+	}
+
+	if (!document.HasMember("errcode") || !document.HasMember("errmsg"))
+	{
+		LOG_INFO("json error!");
+		return;
+	}
+
+	rapidjson::Value& v_errcode = document["errcode"];
+	int errcode = v_errcode.GetInt();
+	if (errcode != 0)
+	{
+		return;
+	}
+
+	if (!document.HasMember("data"))
+	{
+		return;
+	}
+
+	rapidjson::Value& data = document["data"];
+
+	rapidjson::Value& v_rows = data["rows"];
+
+	//这个是用来展示所有订单的区域
+	CVerticalLayoutUI* pOrderLayout = static_cast<CVerticalLayoutUI*>(m_pm.FindControl(_T("zhengcan_saomadiancan_wnd_layout")));
+	pOrderLayout->RemoveAll();
+
+	for (rapidjson::SizeType j = 0; j < v_rows.Size(); ++j)
+	{
+		rapidjson::Value& orderinfo = v_rows[j];
+
+		std::string table_name = CLewaimaiJson::ToString(orderinfo["table_name"]);
+		std::string init_time = CLewaimaiJson::ToString(orderinfo["init_time"]);
+		std::string order_id = CLewaimaiJson::ToString(orderinfo["order_id"]);
+		std::string jiacai_no = CLewaimaiJson::ToString(orderinfo["jiacai_no"]);
+
+		CDialogBuilder builder;
+
+		//一个pEle就是一个订单的区域
+		CHorizontalLayoutUI* pEle = static_cast<CHorizontalLayoutUI*>(builder.Create(_T("zhengcan_saomadiancan_wnd_order_item.xml"), (UINT)0, NULL, &m_pm));
+		pOrderLayout->Add(pEle);
+
+		rapidjson::Value& food_list = orderinfo["item"]["food_list"];
+		rapidjson::Value& foodpackage_array = orderinfo["item"]["foodpackage_array"];
+
+		//这个是订单内部的展示商品的区域
+		CVerticalLayoutUI* pFoodLayout = static_cast<CVerticalLayoutUI*>(pEle->FindSubControl(_T("zhengcan_saomadiancanfoodlist_layout")));
+		pFoodLayout->SetFixedHeight((food_list.Size() + foodpackage_array.Size()) * 40);
+
+		pEle->SetFixedHeight((food_list.Size() + foodpackage_array.Size()) * 40 + 112);
+
+		//先添加普通商品的详情
+		for (rapidjson::SizeType i = 0; i < food_list.Size(); ++j)
+		{
+			rapidjson::Value& food_list_item = food_list[i];
+
+			CDialogBuilder builder1;
+
+			//这个是某一行商品
+			CHorizontalLayoutUI* pFoodEle = static_cast<CHorizontalLayoutUI*>(builder1.Create(_T("zhengcan_saomadiancan_wnd_food_item.xml"), (UINT)0, NULL, &m_pm));
+			pFoodLayout->Add(pFoodEle);
+
+			std::string food_name = CLewaimaiJson::ToString(food_list_item["food_name"]);
+			std::string num = CLewaimaiJson::ToString(food_list_item["quantity"]);
+			std::string price = CLewaimaiString::DoubleToString(atof(CLewaimaiJson::ToString(food_list_item["single_price"]).c_str()) * atof(num.c_str()), 2);
+
+			pFoodEle->FindSubControl(L"food_name")->SetText(CLewaimaiString::UTF8ToUnicode(food_name).c_str());
+			pFoodEle->FindSubControl(L"food_num")->SetText(CLewaimaiString::UTF8ToUnicode(num).c_str());
+			pFoodEle->FindSubControl(L"food_price")->SetText(CLewaimaiString::UTF8ToUnicode(price).c_str());
+		}
+
+		//再添加套餐的详情
+		for (rapidjson::SizeType i = 0; i < foodpackage_array.Size(); ++j)
+		{
+			rapidjson::Value& food_list_item = food_list[i];
+
+			CDialogBuilder builder1;
+
+			//这个是某一行商品
+			CHorizontalLayoutUI* pFoodEle = static_cast<CHorizontalLayoutUI*>(builder1.Create(_T("zhengcan_saomadiancan_wnd_food_item.xml"), (UINT)0, NULL, &m_pm));
+			pFoodLayout->Add(pFoodEle);
+
+			std::string food_name = CLewaimaiJson::ToString(food_list_item["food_name"]);
+			std::string num = CLewaimaiJson::ToString(food_list_item["quantity"]);
+			std::string price = CLewaimaiString::DoubleToString(atof(CLewaimaiJson::ToString(food_list_item["single_price"]).c_str()) * atof(num.c_str()), 2);
+
+			pFoodEle->FindSubControl(L"food_name")->SetText(CLewaimaiString::UTF8ToUnicode(food_name).c_str());
+			pFoodEle->FindSubControl(L"food_num")->SetText(CLewaimaiString::UTF8ToUnicode(num).c_str());
+			pFoodEle->FindSubControl(L"food_price")->SetText(CLewaimaiString::UTF8ToUnicode(price).c_str());
+		}
+
+		CLabelUI* pTime = static_cast<CLabelUI*>(pEle->FindSubControl(_T("zhengcan_saomadiancanorder_time")));
+		pTime->SetText(CLewaimaiString::UTF8ToUnicode(init_time).c_str());
+
+		//给按钮加属性,点击的时候好判断并且处理
+		CButtonUI* pDelete = static_cast<CButtonUI*>(pEle->FindSubControl(_T("zhengcan_saomadiancanorder_delete")));
+		pDelete->AddCustomAttribute(L"order_id", CLewaimaiString::UTF8ToUnicode(order_id).c_str());
+		pDelete->AddCustomAttribute(L"jiacai_no", CLewaimaiString::UTF8ToUnicode(jiacai_no).c_str());
+
+		CButtonUI* pQueren = static_cast<CButtonUI*>(pEle->FindSubControl(_T("zhengcan_saomadiancanorder_queren")));
+		pQueren->AddCustomAttribute(L"order_id", CLewaimaiString::UTF8ToUnicode(order_id).c_str());
+		pQueren->AddCustomAttribute(L"jiacai_no", CLewaimaiString::UTF8ToUnicode(jiacai_no).c_str());
+	}
+}
+
+void CZhengcanSaomadiancanWnd::SetTitle(std::wstring title)
+{
+	CLabelUI* pLabel = static_cast<CLabelUI*>(m_pm.FindControl(_T("memo_dlg_title")));
+	pLabel->SetText(title.c_str());
+}

+ 82 - 0
zhipuzi_pos_windows/wnd/CZhengcanSaomadiancanWnd.h

@@ -0,0 +1,82 @@
+#pragma once
+
+#include "../pch/pch.h"
+#include "CMainWnd.h"
+#include "CModalWnd.h"
+
+class CZhengcanPageUI;
+
+class CZhengcanSaomadiancanWnd : public CModalWnd
+{
+public:
+	LPCTSTR GetWindowClassName() const
+	{
+		return _T("UIMemoWndFrame");
+	};
+
+	UINT GetClassStyle() const
+	{
+		return UI_CLASSSTYLE_DIALOG;
+	};
+
+	void OnFinalMessage(HWND /*hWnd*/)
+	{
+		//WindowImplBase::OnFinalMessage(hWnd);
+		m_pm.RemovePreMessageFilter(this);
+
+		//delete this;
+	};
+
+	void Init();
+
+	void RefreshOrder();
+
+	void SetPageUI(CZhengcanPageUI* page)
+	{
+		m_pageUI = page;
+	}
+
+	void SetTitle(std::wstring title);
+
+	void Notify(TNotifyUI& msg);
+
+	LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
+
+	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 OnNcPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
+	{
+		return 0;
+	}
+
+	LRESULT OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
+
+	LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
+
+	LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam);
+
+	LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool& bHandled);
+
+	//´¦Àí¼üÅ̲¶×½½á¹û
+	void HandleTextCapture(std::string content)
+	{
+
+	}
+
+public:
+	CPaintManagerUI m_pm;
+
+	CZhengcanPageUI* m_pageUI;
+};

+ 2 - 0
zhipuzi_pos_windows/zhipuzi_pos_windows.vcxproj

@@ -229,6 +229,7 @@ copy $(ProjectDir)conf\ $(SolutionDir)bin\$(Platform)\$(Configuration)\conf\</Co
     </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemGroup>
+    <ClInclude Include="wnd\CZhengcanSaomadiancanWnd.h" />
     <ClInclude Include="wnd\CAttentionWnd.h" />
     <ClInclude Include="control\CTabletypeOptionUI.h" />
     <ClInclude Include="control\CZhengcanTableItemUI.h" />
@@ -336,6 +337,7 @@ copy $(ProjectDir)conf\ $(SolutionDir)bin\$(Platform)\$(Configuration)\conf\</Co
     <ClInclude Include="helper\CSystem.h" />
   </ItemGroup>
   <ItemGroup>
+    <ClCompile Include="wnd\CZhengcanSaomadiancanWnd.cpp" />
     <ClCompile Include="wnd\CAttentionWnd.cpp" />
     <ClCompile Include="control\CTabletypeOptionUI.cpp" />
     <ClCompile Include="control\CZhengcanTableItemUI.cpp" />

+ 6 - 0
zhipuzi_pos_windows/zhipuzi_pos_windows.vcxproj.filters

@@ -330,6 +330,9 @@
     <ClInclude Include="wnd\CAttentionWnd.h">
       <Filter>头文件</Filter>
     </ClInclude>
+    <ClInclude Include="wnd\CZhengcanSaomadiancanWnd.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="pch\pch.cpp">
@@ -620,6 +623,9 @@
     <ClCompile Include="wnd\CAttentionWnd.cpp">
       <Filter>源文件</Filter>
     </ClCompile>
+    <ClCompile Include="wnd\CZhengcanSaomadiancanWnd.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <Image Include="resource\zhipuzi.ico">