#pragma once #include "../pch/pch.h" #include #include "CMenuWnd.h" #include "CSystemSettingWnd.h" #include "CDingweiInfoWnd.h" #include "COcrWnd.h" #include "CShoukuanWnd.h" #include "CTuikuanWnd.h" class CValueWnd : public CWindowWnd, public INotifyUI, public IMessageFilterUI { public: LPCTSTR GetWindowClassName() const { return _T("UIValueFrame"); }; UINT GetClassStyle() const { return UI_CLASSSTYLE_DIALOG; }; void OnFinalMessage(HWND /*hWnd*/) { //m_pm.RemovePreMessageFilter(this); delete this; }; 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 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 OnWatchWndUpdate(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 ShowShoukuan(); //显示退款界面 void ShowTuikuan(); //添加托盘图标(初始化) void AddTrayIcon(); //处理托盘图标上的事件 LRESULT OnTrayIcon(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); //处理热键 LRESULT OnHotKey(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); void ShowSystemSetting(); void Init(); void TopMostWnd(); void RestartWatch(); void StartWatchWork(); void ReadXunichuankouValue(); void WatchWnd(); void StartOcrWork(); void StartDingweiWnd(); void ConfirmDingweiWnd(std::wstring value, HWND hWnd); void CancalDingweiWnd(); void StartDingweiWork(); void StartOcrWnd(); void ConfirmOcrWnd(RECT rect); void CancelOcr(); tesseract::TessBaseAPI& GetTess(); bool UpdateRegisterHotKey(); private: void UpdateKexian(const char* data, int length); void InitWndPos(); void ShowTrayMenu(); public: CPaintManagerUI m_pm; private: //定义托盘图标对象 NOTIFYICONDATA m_trayIcon; //菜单窗口 CMenuWnd* pMenu; //收款窗口的参数 bool m_is_show_shoukuan = false; CShoukuanWnd* m_shoukuanWnd = NULL; HWND m_shoukuanHWND = NULL; //退款窗口的参数 bool m_is_show_tuikuan = false; CTuikuanWnd* m_tuikuanWnd = NULL; HWND m_tuikuanHWND = NULL; //设置窗口是否已经展示 bool m_is_show_setting = false; CSystemSettingWnd* m_settingWnd; //默认监听的模式 int m_nWatchType = -1; //监听是否进行 bool m_isWatchWork = false; //窗口监听模式的参数 HWND m_watchWnd = NULL; std::wstring m_watchValue = L"0.00"; //窗口定位参数 bool m_is_dingwei_wnd = false; CDingweiWnd* pDingweiWnd; CDingweiInfoWnd* pDingweiInfoWnd; //OCR模式的参数 bool m_is_orc_wnd = false; COcrWnd* pOcrWnd; tesseract::TessBaseAPI m_tess; };