CValueWnd.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. #pragma once
  2. #include "../pch/pch.h"
  3. #include <zpzDll/zpzDll.h>
  4. #include "CMenuWnd.h"
  5. #include "CSystemSettingWnd.h"
  6. #include "CDingweiInfoWnd.h"
  7. #include "COcrWnd.h"
  8. #include "CShoukuanWnd.h"
  9. #include "CTuikuanWnd.h"
  10. class CValueWnd : public CWindowWnd, public INotifyUI, public IMessageFilterUI
  11. {
  12. public:
  13. LPCTSTR GetWindowClassName() const
  14. {
  15. return _T("UIValueFrame");
  16. };
  17. UINT GetClassStyle() const
  18. {
  19. return UI_CLASSSTYLE_DIALOG;
  20. };
  21. void OnFinalMessage(HWND /*hWnd*/)
  22. {
  23. //m_pm.RemovePreMessageFilter(this);
  24. delete this;
  25. };
  26. void Notify(TNotifyUI& msg);
  27. LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  28. LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  29. LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  30. LRESULT OnNcActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  31. LRESULT OnNcCalcSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  32. LRESULT OnNcPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  33. LRESULT OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  34. LRESULT OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  35. LRESULT OnRButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  36. LRESULT OnKexianUpdate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  37. LRESULT OnWatchWndUpdate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  38. LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam);
  39. LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, bool& bHandled);
  40. //显示收款界面
  41. void ShowShoukuan();
  42. //显示退款界面
  43. void ShowTuikuan();
  44. //添加托盘图标(初始化)
  45. void AddTrayIcon();
  46. //处理托盘图标上的事件
  47. LRESULT OnTrayIcon(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  48. //处理热键
  49. LRESULT OnHotKey(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
  50. void ShowSystemSetting();
  51. void Init();
  52. void TopMostWnd();
  53. void RestartWatch();
  54. void StartWatchWork();
  55. void ReadXunichuankouValue();
  56. void WatchWnd();
  57. void StartOcrWork();
  58. void StartDingweiWnd();
  59. void ConfirmDingweiWnd(std::wstring value, HWND hWnd);
  60. void CancalDingweiWnd();
  61. void StartDingweiWork();
  62. void StartOcrWnd();
  63. void ConfirmOcrWnd(RECT rect);
  64. void CancelOcr();
  65. tesseract::TessBaseAPI& GetTess();
  66. bool UpdateRegisterHotKey();
  67. private:
  68. void UpdateKexian(const char* data, int length);
  69. void InitWndPos();
  70. void ShowTrayMenu();
  71. public:
  72. CPaintManagerUI m_pm;
  73. private:
  74. //定义托盘图标对象
  75. NOTIFYICONDATA m_trayIcon;
  76. //菜单窗口
  77. CMenuWnd* pMenu;
  78. //收款窗口的参数
  79. bool m_is_show_shoukuan = false;
  80. CShoukuanWnd* m_shoukuanWnd = NULL;
  81. HWND m_shoukuanHWND = NULL;
  82. //退款窗口的参数
  83. bool m_is_show_tuikuan = false;
  84. CTuikuanWnd* m_tuikuanWnd = NULL;
  85. HWND m_tuikuanHWND = NULL;
  86. //设置窗口是否已经展示
  87. bool m_is_show_setting = false;
  88. CSystemSettingWnd* m_settingWnd;
  89. //默认监听的模式
  90. int m_nWatchType = -1;
  91. //监听是否进行
  92. bool m_isWatchWork = false;
  93. //窗口监听模式的参数
  94. HWND m_watchWnd = NULL;
  95. std::wstring m_watchValue = L"0.00";
  96. //窗口定位参数
  97. bool m_is_dingwei_wnd = false;
  98. CDingweiWnd* pDingweiWnd;
  99. CDingweiInfoWnd* pDingweiInfoWnd;
  100. //OCR模式的参数
  101. bool m_is_orc_wnd = false;
  102. COcrWnd* pOcrWnd;
  103. tesseract::TessBaseAPI m_tess;
  104. };