CShuangpingTool.cpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. #include "../pch/pch.h"
  2. #include "CShuangpingTool.h"
  3. CShuangpingTool::CShuangpingTool()
  4. {
  5. }
  6. bool CShuangpingTool::IsShuangping()
  7. {
  8. return m_is_shuangping;
  9. }
  10. void CShuangpingTool::Init()
  11. {
  12. INT iNumber = GetSystemMetrics(SM_CMONITORS);
  13. if (iNumber > 1)
  14. {
  15. m_is_shuangping = true;
  16. }
  17. else
  18. {
  19. //这种情况说明没有副屏
  20. m_is_shuangping = false;
  21. return;
  22. }
  23. //确定副屏显示区域
  24. RECT rect;
  25. rect.left = 0;
  26. rect.top = 0;
  27. rect.right = 0;
  28. rect.bottom = 0;
  29. for (int i = 0; i < iNumber; i++)
  30. {
  31. //初始化
  32. BOOL bFlag;
  33. DISPLAY_DEVICE dd;
  34. ZeroMemory(&dd, sizeof(dd));
  35. dd.cb = sizeof(dd);
  36. DEVMODE devMode;
  37. ZeroMemory(&devMode, sizeof(devMode));
  38. devMode.dmSize = sizeof(devMode);
  39. bFlag = EnumDisplayDevices(NULL, i, &dd, 0);//如果有该显示器,再去获得它的设置
  40. if (bFlag == FALSE)
  41. {
  42. continue;
  43. }
  44. bFlag = EnumDisplaySettings(dd.DeviceName, ENUM_CURRENT_SETTINGS, &devMode);
  45. if (bFlag == FALSE)
  46. {
  47. continue;
  48. }
  49. if (devMode.dmPosition.x == 0 && devMode.dmPosition.y == 0)
  50. {
  51. //主显示器
  52. continue;
  53. }
  54. else
  55. {
  56. //副显示器
  57. rect.left = devMode.dmPosition.x;
  58. rect.top = devMode.dmPosition.y;
  59. rect.right = rect.left + devMode.dmPelsWidth;
  60. rect.bottom = rect.top + devMode.dmPelsHeight;
  61. m_fuping_rect = rect;
  62. }
  63. }
  64. }
  65. void CShuangpingTool::InitWnd(HWND hwnd)
  66. {
  67. //创建并初始化副屏窗口
  68. m_pFuping = new CFupingWnd();
  69. if (m_pFuping == NULL)
  70. {
  71. m_is_shuangping = false;
  72. LOG_INFO("副屏窗口创建失败!");
  73. return;
  74. }
  75. m_pFuping->Create(hwnd, _T("智铺子收银系统副屏"), UI_WNDSTYLE_DIALOG, 0, 0, 0, 0, 0, NULL);
  76. m_pFuping->SetIcon(IDI_ICON_DUILIB);
  77. ::MoveWindow(m_pFuping->GetHWND(), m_fuping_rect.left, m_fuping_rect.top, m_fuping_rect.right - m_fuping_rect.left, m_fuping_rect.bottom - m_fuping_rect.top, true);
  78. m_pFuping->ShowWindow(true);
  79. }
  80. void CShuangpingTool::DestoryWnd()
  81. {
  82. if (m_pFuping == NULL)
  83. {
  84. return;
  85. }
  86. m_pFuping->Stop();
  87. m_pFuping = NULL;
  88. }
  89. void CShuangpingTool::UpdateShow(CDiandanOrder& order, double total_youhui, double total_price, double dabao_money)
  90. {
  91. if (m_is_shuangping == false)
  92. {
  93. //如果都没双屏,就不处理了
  94. return;
  95. }
  96. m_pFuping->UpdateShow(order, total_youhui, total_price, dabao_money);
  97. }