Browse Source

优化弹出菜单

张洋 6 years ago
parent
commit
58e23873fd

BIN
bin/Win32/Debug/zhipuzi_pay_plugin/db/pos.db


File diff suppressed because it is too large
+ 1255 - 0
bin/Win32/Debug/zhipuzi_pay_plugin/log/pos.log


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/skin/logo_40.png


bin/Win32/Debug/zhipuzi_pay_plugin/skin/logo.png → bin/Win32/Debug/zhipuzi_pay_plugin/skin/logo_50.png


+ 21 - 0
bin/Win32/Debug/zhipuzi_pay_plugin/skin/menu.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Window bktrans="true" size="120,104" layeredimage="file='menu_bk.png' corner='40,8,8,8'" layeredopacity="255">
+ <Font id="0" name="宋体" size="13" bold="false"/>
+ <Font id="1" name="宋体" size="12"/>
+<VerticalLayout bkimage="file='menu_bk.png' corner='40,8,8,8'" hole="false">
+	<List header="hidden" inset="8,8,8,8" itemhotimage="file='menu_hot_bk.png' corner='2,2,2,2'" itemdisabledbkcolor="#FF0000FF">
+		<ListContainerElement name="menu_pay" height="22" inset="40,0,0,0">
+			<Label text="收银" mouse="false"/>
+		</ListContainerElement>
+		<ListContainerElement name="menu_refund" height="22" inset="40,0,0,0">
+			<Label text="退款" mouse="false"/>
+		</ListContainerElement>
+		<ListContainerElement name="menu_setting" height="22" inset="40,0,0,0">
+			<Label text="系统设置" mouse="false"/>
+		</ListContainerElement>
+		<ListContainerElement name="menu_quit" height="22" inset="40,0,0,0">
+			<Label text="退出" mouse="false"/>
+		</ListContainerElement>
+	</List>
+</VerticalLayout>
+</Window>

BIN
bin/Win32/Debug/zhipuzi_pay_plugin/skin/menu_bk.png


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/skin/menu_hot_bk.png


+ 55 - 0
bin/Win32/Debug/zhipuzi_pay_plugin/skin/system_setting.xml

@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Window size="800,600" caption="0,0,0,36" roundcorner="4,4" >
+	<VerticalLayout bkimage="file='Dialog_BG1.png' corner='4,50,4,4'">
+		<HorizontalLayout height="40" inset="10,2,10,0">
+			<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>
+		<VerticalLayout inset="15,0,15,15" vscrollbar="true" >
+			<Control height="20" />
+
+			<HorizontalLayout height="56">
+				<Label text="厨房打印机名字" width="160"/>
+				<Edit name="chufang_setting_name" width="150" height="32" padding="0,12,0,12" normalimage="file='Chat_InputBox_BG.png' corner='4,4,4,4'" hotimage="file='Chat_InputBox_BG_Hover.png' corner='4,4,4,4'" />
+			</HorizontalLayout>
+
+			<HorizontalLayout height="56" valign="center">
+				<Label text="IP地址" width="160" />
+				<Edit name="chufang_setting_ip" width="150" height="32" padding="0,12,0,12" normalimage="file='Chat_InputBox_BG.png' corner='4,4,4,4'" hotimage="file='Chat_InputBox_BG_Hover.png' corner='4,4,4,4'" />
+				<Label name="chufang_setting_ip_error" text="IP地址格式不正确" padding="20,0,0,0" textcolor="#FFFF0000" />
+			</HorizontalLayout>
+
+			<HorizontalLayout height="56" valign="center">
+				<Label text="打印机规格" width="160" />
+				<Combo name="chufang_setting_guige" padding="0,12,0,12" width="140" height="32" tooltip="请点击这里选择您的打印机纸张宽度规格" normalimage="file='Setting_Combox_Normal.png' corner='2,2,24,2'" hotimage="file='Setting_Combox_Hover.png' corner='2,2,24,2'" pushedimage="Setting_Combox_Click.png' corner='2,2,24,2'" textpadding="10,1,1,1" >
+					<ListLabelElement text="58mm" selected="true" />
+					<ListLabelElement text="80mm" />
+				</Combo>
+			</HorizontalLayout>
+
+			<HorizontalLayout height="56" valign="center">
+				<Label text="分单打印" width="160" />
+				<CheckBox name="chufang_setting_fendan" padding="0,5,0,5" width="72" height="45" normalimage="file='switchbutton.png' source='0,0,143,91'" selectedimage="file='switchbutton.png' source='0,182,143,273'"/>
+			</HorizontalLayout>
+
+			<HorizontalLayout height="56" valign="center">
+				<Label text="分类打印" width="160" />
+				<CheckBox name="chufang_setting_fenlei" padding="0,5,0,5" width="72" height="45" normalimage="file='switchbutton.png' source='0,0,143,91'" selectedimage="file='switchbutton.png' source='0,182,143,273'"/>
+			</HorizontalLayout>
+			
+			<VerticalLayout name="chufang_setting_fenlei_xuanze">
+				<Label text="请在下面勾选需要打印的商品分类" height="30"/>
+				<VerticalLayout name="chufang_setting_fenlei_xuanze_area">
+					
+				</VerticalLayout>
+			</VerticalLayout>
+		</VerticalLayout>
+		
+		<HorizontalLayout height="56" valign="center" padding="0,30,0,20">
+			<Control />
+			<Button name="chufang_setting_save" align="center" width="280" height="44" text="保存" normalimage="file='Btn_White.png' corner='5,5,5,5'" hotimage="file='Btn_White_Hover.png' corner='5,5,5,5'" pushedimage="file='Btn_White_Click.png' corner='5,5,5,5'" />
+			<Control />
+		</HorizontalLayout>
+	</VerticalLayout>
+</Window>

+ 1 - 1
bin/Win32/Debug/zhipuzi_pay_plugin/skin/value.xml

@@ -3,7 +3,7 @@
 	<Font shared="true" id="0" name="微软雅黑" size="24" />
 	<Font shared="true" id="0" name="微软雅黑" size="24" />
 	<Font shared="true" id="1" name="微软雅黑" size="16" />
 	<Font shared="true" id="1" name="微软雅黑" size="16" />
 	<HorizontalLayout bkimage="file='value_bkg.png' corner='5,5,5,5'">
 	<HorizontalLayout bkimage="file='value_bkg.png' corner='5,5,5,5'">
-		<Control bkimage="file='logo.png'" width="40" height="40" float="true" pos="10,10,50,50"></Control>
+		<Control bkimage="file='logo_40.png'" width="40" height="40" float="true" pos="10,10,50,50"></Control>
 		<Label name="value_info" float="true" text="¥" textcolor="#FFFFFFFF" font="1" pos="55, 10, 70, 60" />
 		<Label name="value_info" float="true" text="¥" textcolor="#FFFFFFFF" font="1" pos="55, 10, 70, 60" />
 		<Label name="value" float="true" text="0.00" textcolor="#FFFFFFFF" font="0" pos="70, 6, 160, 60" />
 		<Label name="value" float="true" text="0.00" textcolor="#FFFFFFFF" font="0" pos="70, 6, 160, 60" />
     </HorizontalLayout>
     </HorizontalLayout>

BIN
bin/Win32/Debug/zhipuzi_pay_plugin/zhipuzi_pay_plugin.exe


+ 214 - 0
zhipuzi_pay_plugin/wnd/CMenuWnd.cpp

@@ -0,0 +1,214 @@
+#include "../pch/pch.h"
+#include "CMenuWnd.h"
+
+
+
+CMenuWnd::CMenuWnd()
+{
+}
+
+
+CMenuWnd::~CMenuWnd()
+{
+}
+
+void CMenuWnd::Init()
+{
+	
+}
+
+void CMenuWnd::Notify(TNotifyUI& msg)
+{
+	CDuiString name = msg.pSender->GetName();
+
+	if (msg.sType == _T("click"))
+	{
+		if (msg.pSender->GetName() == _T("closebtn"))
+		{
+			PostQuitMessage(0);
+			return;
+		}
+	}
+	else if (msg.sType == L"itemclick")
+	{
+		//响应菜单事件
+		::MessageBox(NULL, name.GetData(), L"hello", MB_OK);
+		this->ShowWindow(false);
+	}
+}
+
+LRESULT CMenuWnd::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("menu.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;
+}
+
+LRESULT CMenuWnd::OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
+{
+	bHandled = FALSE;
+	return 0;
+}
+
+/*
+ *这个是窗口被销毁的时候调用的
+ **/
+LRESULT CMenuWnd::OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
+{
+	bHandled = FALSE;
+	return 0;
+}
+
+LRESULT CMenuWnd::OnNcActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
+{
+	if (::IsIconic(*this))
+	{
+		bHandled = FALSE;
+	}
+
+	return (wParam == 0) ? TRUE : FALSE;
+}
+
+LRESULT CMenuWnd::OnNcCalcSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
+{
+	return 0;
+}
+
+LRESULT CMenuWnd::OnNcPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
+{
+	//在这里设置焦点才有用
+	CEditUI* pAccountEdit = static_cast<CEditUI*>(m_pm.FindControl(_T("accountedit")));
+
+	if (pAccountEdit)
+	{
+		pAccountEdit->SetFocus();
+	}
+
+	return 0;
+}
+
+LRESULT CMenuWnd::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 CMenuWnd::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 CMenuWnd::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;
+	default:
+		bHandled = FALSE;
+	}
+
+	if (bHandled)
+	{
+		return lRes;
+	}
+
+	if (m_pm.MessageHandler(uMsg, wParam, lParam, lRes))
+	{
+		return lRes;
+	}
+
+	return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
+}
+
+LRESULT CMenuWnd::MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool& bHandled)
+{
+	return false;
+}

+ 52 - 0
zhipuzi_pay_plugin/wnd/CMenuWnd.h

@@ -0,0 +1,52 @@
+#pragma once
+
+class CMenuWnd : public CWindowWnd, public INotifyUI, public IMessageFilterUI
+{
+public:
+	CMenuWnd();
+	~CMenuWnd();
+
+	LPCTSTR GetWindowClassName() const
+	{
+		return _T("UIUpdateFrame");
+	};
+
+	UINT GetClassStyle() const
+	{
+		return UI_CLASSSTYLE_DIALOG;
+	};
+
+	void OnFinalMessage(HWND /*hWnd*/)
+	{
+		//m_pm.RemovePreMessageFilter(this);
+		delete this;
+	};
+
+	void Init();
+
+	void Notify(TNotifyUI& msg);
+
+	LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
+
+	LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
+
+	LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
+
+	LRESULT OnNcActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
+
+	LRESULT OnNcCalcSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
+
+	LRESULT OnNcPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
+
+	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);
+
+public:
+	CPaintManagerUI m_pm;
+};
+

+ 81 - 4
zhipuzi_pay_plugin/wnd/CValueWnd.cpp

@@ -25,6 +25,11 @@ void CValueWnd::Init()
 	//添加托盘图标
 	//添加托盘图标
 	AddTrayIcon();
 	AddTrayIcon();
 
 
+	//初始化菜单窗口
+	pMenu = new CMenuWnd();
+	pMenu->Create(m_hWnd, L"智铺子收银插件菜单", WS_POPUP, WS_EX_TOOLWINDOW);
+	pMenu->ShowWindow(false);
+
     BOOL isAdmin = CSystem::IsRunasAdmin();
     BOOL isAdmin = CSystem::IsRunasAdmin();
 
 
     if(isAdmin)
     if(isAdmin)
@@ -243,7 +248,7 @@ LRESULT CValueWnd::OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHand
     m_pm.AttachDialog(pRoot);
     m_pm.AttachDialog(pRoot);
 
 
     // 把自己加入到CPaintManagerUI的m_aNotifiers数组中,用于处理Notify函数
     // 把自己加入到CPaintManagerUI的m_aNotifiers数组中,用于处理Notify函数
-    m_pm.AddNotifier(this);
+    //m_pm.AddNotifier(this);
 
 
 	//进行一些初始化工作
 	//进行一些初始化工作
     Init();
     Init();
@@ -320,6 +325,74 @@ LRESULT CValueWnd::OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bH
     return HTCLIENT;
     return HTCLIENT;
 }
 }
 
 
+LRESULT CValueWnd::OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
+{
+/*
+	//获取鼠标点击位置
+	int xPos = LOWORD(lParam);
+	int yPos = HIWORD(lParam);
+
+	//將位置转换为屏幕坐标
+	POINT pt = { xPos,yPos };
+	ClientToScreen(m_hWnd, &pt);
+
+	RECT menuWndRect = { 0 };
+	::GetWindowRect(pMenu->GetHWND(), &menuWndRect);
+
+	if (pt.x <= menuWndRect.left || pt.x >= menuWndRect.right
+		|| pt.y <= menuWndRect.top || pt.y >= menuWndRect.bottom)
+	{
+		pMenu->ShowWindow(false);
+	}
+
+	bHandled = FALSE;
+	return 0;*/
+
+	bHandled = FALSE;
+	return 0;
+}
+
+LRESULT CValueWnd::OnRButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
+{
+/*
+	int xPos = LOWORD(lParam);
+	int yPos = HIWORD(lParam);
+
+	POINT pt = { xPos,yPos };
+
+	//可能是因为整个窗口都是标题区域,这里不需要做转换
+	//ClientToScreen(m_hWnd, &pt);
+
+	pMenu->ShowWindow(true);
+
+	::SetWindowPos(pMenu->GetHWND(), NULL, pt.x, pt.y, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE);
+
+	bHandled = FALSE;
+	return 0;*/
+
+	//获取鼠标坐标
+	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)
+	{
+		//退出程序
+		::PostQuitMessage(0);
+	}
+
+	return 0;
+}
+
 LRESULT CValueWnd::OnKexianUpdate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
 LRESULT CValueWnd::OnKexianUpdate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
 {
 {
     //收到了客显数据消息,读取客显数据
     //收到了客显数据消息,读取客显数据
@@ -370,7 +443,12 @@ LRESULT CValueWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
     case WM_NCACTIVATE:
     case WM_NCACTIVATE:
         lRes = OnNcActivate(uMsg, wParam, lParam, bHandled);
         lRes = OnNcActivate(uMsg, wParam, lParam, bHandled);
         break;
         break;
-
+	case WM_NCLBUTTONDOWN:
+		lRes = OnLButtonDown(uMsg, wParam, lParam, bHandled);
+		break;
+	case WM_NCRBUTTONDOWN:
+		lRes = OnRButtonDown(uMsg, wParam, lParam, bHandled);
+		break;
     case WM_NCCALCSIZE:
     case WM_NCCALCSIZE:
         lRes = OnNcCalcSize(uMsg, wParam, lParam, bHandled);
         lRes = OnNcCalcSize(uMsg, wParam, lParam, bHandled);
         break;
         break;
@@ -382,10 +460,9 @@ LRESULT CValueWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
     case WM_NCHITTEST:
     case WM_NCHITTEST:
         lRes = OnNcHitTest(uMsg, wParam, lParam, bHandled);
         lRes = OnNcHitTest(uMsg, wParam, lParam, bHandled);
         break;
         break;
-    case  WM_SHOWTASK:
+    case WM_SHOWTASK:
         lRes = OnTrayIcon(uMsg, wParam, lParam, bHandled);
         lRes = OnTrayIcon(uMsg, wParam, lParam, bHandled);
         break;
         break;
-
     case WM_HOOK_MESSAGE:
     case WM_HOOK_MESSAGE:
         lRes = OnKexianUpdate(uMsg, wParam, lParam, bHandled);
         lRes = OnKexianUpdate(uMsg, wParam, lParam, bHandled);
         break;
         break;

+ 9 - 1
zhipuzi_pay_plugin/wnd/CValueWnd.h

@@ -5,6 +5,8 @@
 
 
 #include "../helper/WndHelper.h"
 #include "../helper/WndHelper.h"
 
 
+#include "CMenuWnd.h"
+
 class CValueWnd : public CWindowWnd, public INotifyUI, public IMessageFilterUI
 class CValueWnd : public CWindowWnd, public INotifyUI, public IMessageFilterUI
 {
 {
 public:
 public:
@@ -41,6 +43,10 @@ public:
 
 
 	LRESULT OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
 	LRESULT OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
 
 
+	LRESULT OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
+
+	LRESULT OnRButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
+
 	LRESULT OnKexianUpdate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
 	LRESULT OnKexianUpdate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
 
 
 	LRESULT OnWatchWndUpdate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
 	LRESULT OnWatchWndUpdate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
@@ -66,7 +72,6 @@ private:
 	void FindValueWnd(std::wstring value);
 	void FindValueWnd(std::wstring value);
 
 
 	void InitWndPos();
 	void InitWndPos();
-
 public:
 public:
 	CPaintManagerUI m_pm;
 	CPaintManagerUI m_pm;
 
 
@@ -76,5 +81,8 @@ private:
 
 
 	//定义托盘图标对象
 	//定义托盘图标对象
 	NOTIFYICONDATA m_trayIcon;
 	NOTIFYICONDATA m_trayIcon;
+
+	//菜单窗口
+	CMenuWnd* pMenu;
 };
 };
 
 

+ 2 - 0
zhipuzi_pay_plugin/zhipuzi_pay_plugin.vcxproj

@@ -220,6 +220,7 @@ copy $(ProjectDir)conf\ $(SolutionDir)bin\$(Platform)\$(Configuration)\conf\</Co
     </PostBuildEvent>
     </PostBuildEvent>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
   <ItemGroup>
   <ItemGroup>
+    <ClInclude Include="wnd\CMenuWnd.h" />
     <ClInclude Include="helper\WndHelper.h" />
     <ClInclude Include="helper\WndHelper.h" />
     <ClInclude Include="tool\CSerialPort.h" />
     <ClInclude Include="tool\CSerialPort.h" />
     <ClInclude Include="tool\CComHelper.h" />
     <ClInclude Include="tool\CComHelper.h" />
@@ -254,6 +255,7 @@ copy $(ProjectDir)conf\ $(SolutionDir)bin\$(Platform)\$(Configuration)\conf\</Co
     <ClInclude Include="control\OrderListUI.h" />
     <ClInclude Include="control\OrderListUI.h" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
+    <ClCompile Include="wnd\CMenuWnd.cpp" />
     <ClCompile Include="helper\WndHelper.cpp" />
     <ClCompile Include="helper\WndHelper.cpp" />
     <ClCompile Include="tool\CSerialPort.cpp" />
     <ClCompile Include="tool\CSerialPort.cpp" />
     <ClCompile Include="tool\CComHelper.cpp" />
     <ClCompile Include="tool\CComHelper.cpp" />

+ 6 - 0
zhipuzi_pay_plugin/zhipuzi_pay_plugin.vcxproj.filters

@@ -111,6 +111,9 @@
     <ClInclude Include="helper\WndHelper.h">
     <ClInclude Include="helper\WndHelper.h">
       <Filter>头文件</Filter>
       <Filter>头文件</Filter>
     </ClInclude>
     </ClInclude>
+    <ClInclude Include="wnd\CMenuWnd.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClCompile Include="pch\pch.cpp">
     <ClCompile Include="pch\pch.cpp">
@@ -200,6 +203,9 @@
     <ClCompile Include="helper\WndHelper.cpp">
     <ClCompile Include="helper\WndHelper.cpp">
       <Filter>源文件</Filter>
       <Filter>源文件</Filter>
     </ClCompile>
     </ClCompile>
+    <ClCompile Include="wnd\CMenuWnd.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <Image Include="resource\zhipuzi.ico">
     <Image Include="resource\zhipuzi.ico">