zhangyang 3 years ago
parent
commit
af3145fe95

+ 46 - 0
bin/Win32/Debug/zhipuzi_pos_windows/skin/zhengcan_kaitai_input_dlg.xml

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Window size="700,434" caption="0,0,0,44" roundcorner="4,4" >
+	<Font id="0" name="微软雅黑" size="26" />
+	<Font id="1" name="微软雅黑" size="32" />
+	<Font id="2" name="微软雅黑" size="22" />
+	
+	<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>
+		
+		<HorizontalLayout>
+			<VerticalLayout width="370">
+				<Label name="name" text="请输入用餐人数" height="30" width="250" padding="30,50,0,0" align="left"/>
+	
+				<Edit name="content" width="250" height="50" padding="30,30,0,0" textcolor="0xFF3CB371" bkcolor="#FFF2F2F2" nativebkcolor="#FFF2F2F2" font="1"/>
+				
+				<Label name="errinfo" text=""  height="60" width="250" float="true" pos="30,150,280,290" align="left" textcolor="#FFFF0000" visible="false"/>
+				
+				<HorizontalLayout height="56" valign="center" padding="30,100,0,20">
+					<Button name="save" align="center" text="开台" textcolor="#FFFFFFFF" height="50" width="250" padding="0,0,0,0" normalimage="file='green_zhengchang.png' corner='5,5,5,5'" hotimage="file='green_xuanfu.png' corner='5,5,5,5'" pushedimage="file='green_dianji.png' corner='5,5,5,5'" />
+				</HorizontalLayout>
+			</VerticalLayout>
+			
+			<HorizontalLayout width="330" height="406" bkcolor="#FFF3F3F3">
+				<Button name="jianpan_1" text="1" font="0" heiht="60" width="60" float="true" pos="10,0,110,90" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
+				<Button name="jianpan_2" text="2" font="0" heiht="60" width="60" float="true" pos="120,0,220,90" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
+				<Button name="jianpan_3" text="3" font="0" heiht="60" width="60" float="true" pos="230,0,330,90" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
+				
+				<Button name="jianpan_4" text="4" font="0" heiht="60" width="60" float="true" pos="10,100,110,190" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
+				<Button name="jianpan_5" text="5" font="0" heiht="60" width="60" float="true" pos="120,100,220,190" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
+				<Button name="jianpan_6" text="6" font="0" heiht="60" width="60" float="true" pos="230,100,330,190" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
+				
+				<Button name="jianpan_7" text="7" font="0" heiht="60" width="60" float="true" pos="10,200,110,290" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
+				<Button name="jianpan_8" text="8" font="0" heiht="60" width="60" float="true" pos="120,200,220,290" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
+				<Button name="jianpan_9" text="9" font="0" heiht="60" width="60" float="true" pos="230,200,330,290" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
+				
+				<Button name="jianpan_qingkong" text="清空" font="0" heiht="60" width="60" float="true" pos="10,300,110,390" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
+				<Button name="jianpan_0" text="0" font="0" heiht="60" width="60" float="true" pos="120,300,220,390" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
+				<Button name="jianpan_x" text="X" font="0" heiht="60" width="60" float="true" pos="230,300,330,390" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
+			</HorizontalLayout>
+		</HorizontalLayout>
+		
+	</VerticalLayout>
+</Window>

+ 5 - 0
zhipuzi_pos_windows/control/CZhengcanTableItemUI.h

@@ -33,6 +33,11 @@ public:
 		return m_order_id;
 	}
 
+	std::string GetTableName()
+	{
+		return m_table_name;
+	}
+
 private:
 	std::string m_table_id;
 	std::string m_table_name;

+ 31 - 2
zhipuzi_pos_windows/page/CZhengcanPageUI.cpp

@@ -5,6 +5,8 @@
 
 #include "../tool/CSqlite3.h"
 
+#include "../wnd/CZhengcanKaitaiWnd.h"
+
 CZhengcanPageUI::CZhengcanPageUI()
 {
 }
@@ -407,11 +409,38 @@ void CZhengcanPageUI::ClickTableAction()
 	std::string table_id = m_cur_click_table_item->GetTableId();
 	std::string status = m_cur_click_table_item->GetStatus();
 	std::string order_id = m_cur_click_table_item->GetOrderId();
+	std::string table_name = m_cur_click_table_item->GetTableName();
 
 	if (status == "0")
 	{
-		//未开台
-		
+		//未开台,弹框进行人数选择
+		CZhengcanKaitaiWnd* pKaitaiDlg = new CZhengcanKaitaiWnd();
+
+		if (pKaitaiDlg != NULL)
+		{
+			pKaitaiDlg->Create(m_pManager->GetPaintWindow(), _T(""), UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
+			pKaitaiDlg->SetIcon(IDI_ICON_DUILIB);
+			pKaitaiDlg->CenterWindow();
+
+			pKaitaiDlg->SetTitle(CLewaimaiString::UTF8ToUnicode(table_name));
+
+			UINT ret = pKaitaiDlg->ShowModal();
+
+			if (ret == IDOK)
+			{
+				//这说明折扣输入了
+				std::string renshu = pKaitaiDlg->getContent();
+
+				
+				delete pKaitaiDlg;
+			}
+			else
+			{
+				delete pKaitaiDlg;
+
+				return;
+			}
+		}
 	}
 	else if (status == "1")
 	{

+ 329 - 0
zhipuzi_pos_windows/wnd/CZhengcanKaitaiWnd.cpp

@@ -0,0 +1,329 @@
+#include "../pch/pch.h"
+#include "CZhengcanKaitaiWnd.h"
+
+LRESULT CZhengcanKaitaiWnd::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 CZhengcanKaitaiWnd::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 CZhengcanKaitaiWnd::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 CZhengcanKaitaiWnd::MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool& bHandled)
+{
+	if (uMsg == WM_KEYDOWN)
+	{
+		if (wParam == VK_RETURN)
+		{
+			StartYanzheng();
+
+			return true;
+		}
+		else if (wParam == VK_ESCAPE)
+		{
+			Close(IDCANCEL);
+
+			return true;
+		}
+	}
+
+	return false;
+}
+
+LRESULT CZhengcanKaitaiWnd::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_kaitai_input_dlg.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 CZhengcanKaitaiWnd::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"))
+		{
+			StartYanzheng();
+		}
+		else if (senderName == L"jianpan_1")
+		{
+			CEditUI* pContent = static_cast<CEditUI*>(m_pm.FindControl(_T("content")));
+			wstring wsReason = pContent->GetText();
+
+			wsReason += L"1";
+
+			pContent->SetText(wsReason.c_str());
+			pContent->SetFocus();
+		}
+		else if (senderName == L"jianpan_2")
+		{
+			CEditUI* pContent = static_cast<CEditUI*>(m_pm.FindControl(_T("content")));
+			wstring wsReason = pContent->GetText();
+
+			wsReason += L"2";
+
+			pContent->SetText(wsReason.c_str());
+			pContent->SetFocus();
+		}
+		else if (senderName == L"jianpan_3")
+		{
+			CEditUI* pContent = static_cast<CEditUI*>(m_pm.FindControl(_T("content")));
+			wstring wsReason = pContent->GetText();
+
+			wsReason += L"3";
+
+			pContent->SetText(wsReason.c_str());
+			pContent->SetFocus();
+		}
+		else if (senderName == L"jianpan_4")
+		{
+			CEditUI* pContent = static_cast<CEditUI*>(m_pm.FindControl(_T("content")));
+			wstring wsReason = pContent->GetText();
+
+			wsReason += L"4";
+
+			pContent->SetText(wsReason.c_str());
+			pContent->SetFocus();
+		}
+		else if (senderName == L"jianpan_5")
+		{
+			CEditUI* pContent = static_cast<CEditUI*>(m_pm.FindControl(_T("content")));
+			wstring wsReason = pContent->GetText();
+
+			wsReason += L"5";
+
+			pContent->SetText(wsReason.c_str());
+			pContent->SetFocus();
+		}
+		else if (senderName == L"jianpan_6")
+		{
+			CEditUI* pContent = static_cast<CEditUI*>(m_pm.FindControl(_T("content")));
+			wstring wsReason = pContent->GetText();
+
+			wsReason += L"6";
+
+			pContent->SetText(wsReason.c_str());
+			pContent->SetFocus();
+		}
+		else if (senderName == L"jianpan_7")
+		{
+			CEditUI* pContent = static_cast<CEditUI*>(m_pm.FindControl(_T("content")));
+			wstring wsReason = pContent->GetText();
+
+			wsReason += L"7";
+
+			pContent->SetText(wsReason.c_str());
+			pContent->SetFocus();
+		}
+		else if (senderName == L"jianpan_8")
+		{
+			CEditUI* pContent = static_cast<CEditUI*>(m_pm.FindControl(_T("content")));
+			wstring wsReason = pContent->GetText();
+
+			wsReason += L"8";
+
+			pContent->SetText(wsReason.c_str());
+			pContent->SetFocus();
+		}
+		else if (senderName == L"jianpan_9")
+		{
+			CEditUI* pContent = static_cast<CEditUI*>(m_pm.FindControl(_T("content")));
+			wstring wsReason = pContent->GetText();
+
+			wsReason += L"9";
+
+			pContent->SetText(wsReason.c_str());
+			pContent->SetFocus();
+		}
+		else if (senderName == L"jianpan_0")
+		{
+			CEditUI* pContent = static_cast<CEditUI*>(m_pm.FindControl(_T("content")));
+			wstring wsReason = pContent->GetText();
+
+			wsReason += L"0";
+
+			pContent->SetText(wsReason.c_str());
+			pContent->SetFocus();
+		}
+		else if (senderName == L"jianpan_x")
+		{
+			CEditUI* pContent = static_cast<CEditUI*>(m_pm.FindControl(_T("content")));
+			wstring wsReason = pContent->GetText();
+
+			wsReason = wsReason.substr(0, wsReason.length() - 1);
+
+			pContent->SetText(wsReason.c_str());
+			pContent->SetFocus();
+		}
+		else if (senderName == L"jianpan_qingkong")
+		{
+			CEditUI* pContent = static_cast<CEditUI*>(m_pm.FindControl(_T("content")));
+			wstring wsReason = pContent->GetText();
+
+			wsReason.clear();
+
+			pContent->SetText(wsReason.c_str());
+			pContent->SetFocus();
+		}
+	}
+	else if (msg.sType == _T("textchanged"))
+	{
+		//只能输入数字,其他的全部删除
+		CEditUI* m_pEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("content")));
+		if (!m_pEdit->GetText().IsEmpty())
+		{
+			wstring ws_Value = m_pEdit->GetText();
+			string strValue = CLewaimaiString::UnicodeToUTF8(ws_Value);
+
+			for (size_t nIndex = 0; nIndex < strValue.length(); nIndex++)
+			{
+				unsigned char tmp = strValue.at(nIndex);
+				if (tmp > 57 || tmp < 48)
+				{
+					//ASCII码不是数字的都过滤掉
+					strValue = strValue.substr(0, nIndex);
+
+					m_pEdit->SetText(CLewaimaiString::UTF8ToUnicode(strValue).c_str());
+					m_pEdit->SetSel(strValue.length(), strValue.length());//重设给光标设置位置
+
+					break;
+				}
+			}
+		}
+	}
+	else if (msg.sType == L"windowinit")
+	{
+		m_pm.SetNextTabControl(false);
+
+		CEditUI* pFukuanEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("content")));
+		pFukuanEdit->SetFocus();
+	}
+}
+
+void CZhengcanKaitaiWnd::Init()
+{
+
+}
+
+std::string CZhengcanKaitaiWnd::getContent()
+{
+	return m_content;
+}
+
+void CZhengcanKaitaiWnd::SetTitle(std::wstring title)
+{
+	CLabelUI* pLabel = static_cast<CLabelUI*>(m_pm.FindControl(_T("memo_dlg_title")));
+	pLabel->SetText(title.c_str());
+}
+
+void CZhengcanKaitaiWnd::StartYanzheng()
+{
+	CEditUI* pContent = static_cast<CEditUI*>(m_pm.FindControl(_T("content")));
+	wstring wsReason = pContent->GetText();
+
+	m_content = CLewaimaiString::UnicodeToUTF8(wsReason);
+
+	int canpai = atoi(m_content.c_str());
+
+	Close(IDOK);
+}

+ 80 - 0
zhipuzi_pos_windows/wnd/CZhengcanKaitaiWnd.h

@@ -0,0 +1,80 @@
+#pragma once
+
+#include "../pch/pch.h"
+#include "CMainWnd.h"
+#include "CModalWnd.h"
+
+class CZhengcanKaitaiWnd : 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();
+
+	std::string getContent();
+
+	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 StartYanzheng();
+
+	//´¦Àí¼üÅ̲¶×½½á¹û
+	void HandleTextCapture(std::string content)
+	{
+
+	}
+
+public:
+	CPaintManagerUI m_pm;
+
+	std::string m_content;
+
+	std::wstring m_errorInfo;
+};
+

+ 2 - 0
zhipuzi_pos_windows/zhipuzi_pos_windows.vcxproj

@@ -231,6 +231,7 @@ copy $(ProjectDir)conf\ $(SolutionDir)bin\$(Platform)\$(Configuration)\conf\</Co
   <ItemGroup>
     <ClInclude Include="control\CTabletypeOptionUI.h" />
     <ClInclude Include="control\CZhengcanTableItemUI.h" />
+    <ClInclude Include="wnd\CZhengcanKaitaiWnd.h" />
     <ClInclude Include="wnd\CFupingWnd.h" />
     <ClInclude Include="tool\CShuangpingTool.h" />
     <ClInclude Include="wnd\CShangpinSaomaluruWnd.h" />
@@ -332,6 +333,7 @@ copy $(ProjectDir)conf\ $(SolutionDir)bin\$(Platform)\$(Configuration)\conf\</Co
   <ItemGroup>
     <ClCompile Include="control\CTabletypeOptionUI.cpp" />
     <ClCompile Include="control\CZhengcanTableItemUI.cpp" />
+    <ClCompile Include="wnd\CZhengcanKaitaiWnd.cpp" />
     <ClCompile Include="wnd\CFupingWnd.cpp" />
     <ClCompile Include="tool\CShuangpingTool.cpp" />
     <ClCompile Include="wnd\CShangpinSaomaluruWnd.cpp" />

+ 6 - 0
zhipuzi_pos_windows/zhipuzi_pos_windows.vcxproj.filters

@@ -312,6 +312,9 @@
     <ClInclude Include="control\CZhengcanTableItemUI.h">
       <Filter>头文件</Filter>
     </ClInclude>
+    <ClInclude Include="wnd\CZhengcanKaitaiWnd.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="pch\pch.cpp">
@@ -584,6 +587,9 @@
     <ClCompile Include="control\CZhengcanTableItemUI.cpp">
       <Filter>源文件</Filter>
     </ClCompile>
+    <ClCompile Include="wnd\CZhengcanKaitaiWnd.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <Image Include="resource\zhipuzi.ico">