| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- #include "../pch/pch.h"
- #include "CShuangpingTool.h"
- CShuangpingTool::CShuangpingTool()
- {
- }
- bool CShuangpingTool::IsShuangping()
- {
- return m_is_shuangping;
- }
- void CShuangpingTool::Init()
- {
- INT iNumber = GetSystemMetrics(SM_CMONITORS);
- if (iNumber > 1)
- {
- m_is_shuangping = true;
- }
- else
- {
- //这种情况说明没有副屏
- m_is_shuangping = false;
- return;
- }
- //确定副屏显示区域
- RECT rect;
- rect.left = 0;
- rect.top = 0;
- rect.right = 0;
- rect.bottom = 0;
- for (int i = 0; i < iNumber; i++)
- {
- //初始化
- BOOL bFlag;
- DISPLAY_DEVICE dd;
- ZeroMemory(&dd, sizeof(dd));
- dd.cb = sizeof(dd);
- DEVMODE devMode;
- ZeroMemory(&devMode, sizeof(devMode));
- devMode.dmSize = sizeof(devMode);
- bFlag = EnumDisplayDevices(NULL, i, &dd, 0);//如果有该显示器,再去获得它的设置
- if (bFlag == FALSE)
- {
- continue;
- }
- bFlag = EnumDisplaySettings(dd.DeviceName, ENUM_CURRENT_SETTINGS, &devMode);
- if (bFlag == FALSE)
- {
- continue;
- }
- if (devMode.dmPosition.x == 0 && devMode.dmPosition.y == 0)
- {
- //主显示器
- continue;
- }
- else
- {
- //副显示器
- rect.left = devMode.dmPosition.x;
- rect.top = devMode.dmPosition.y;
- rect.right = rect.left + devMode.dmPelsWidth;
- rect.bottom = rect.top + devMode.dmPelsHeight;
- m_fuping_rect = rect;
- }
- }
- }
- void CShuangpingTool::InitWnd(HWND hwnd)
- {
- //创建并初始化副屏窗口
- m_pFuping = new CFupingWnd();
- if (m_pFuping == NULL)
- {
- m_is_shuangping = false;
- LOG_INFO("副屏窗口创建失败!");
- return;
- }
- m_pFuping->Create(hwnd, _T("智铺子收银系统副屏"), UI_WNDSTYLE_DIALOG, 0, 0, 0, 0, 0, NULL);
- m_pFuping->SetIcon(IDI_ICON_DUILIB);
- ::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);
- m_pFuping->ShowWindow(true);
- }
- void CShuangpingTool::DestoryWnd()
- {
- if (m_pFuping == NULL)
- {
- return;
- }
- m_pFuping->Stop();
- m_pFuping = NULL;
- }
- void CShuangpingTool::UpdateShow(CDiandanOrder& order, double total_youhui, double total_price, double dabao_money)
- {
- if (m_is_shuangping == false)
- {
- //如果都没双屏,就不处理了
- return;
- }
- m_pFuping->UpdateShow(order, total_youhui, total_price, dabao_money);
- }
|