1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #include "stdafx.h"
- #include "MultiMonitorEnumerator.h"
- CMultiMonitorEnumerator::CMultiMonitorEnumerator()
- {
- m_iMontorNumber = 0;
- EnumDisplayMonitors(NULL, NULL, MonitorEnumProc, (LPARAM)this);
- }
- BOOL CALLBACK CMultiMonitorEnumerator::MonitorEnumProc( HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData )
- {
- CMultiMonitorEnumerator* pThis = (CMultiMonitorEnumerator*)dwData;
-
- if (lprcMonitor)
- {
-
-
-
-
- }
-
- MONITORINFOEX infoEx;
- memset(&infoEx, 0, sizeof(infoEx));
- infoEx.cbSize = sizeof(infoEx);
- if (GetMonitorInfo(hMonitor, &infoEx))
- {
-
-
-
-
-
-
- }
-
- if (pThis->m_iMontorNumber < _countof(pThis->m_MonitorInfoExArray) - 1)
- {
- VMONITORINFO* pInfo = &pThis->m_MonitorInfoExArray[pThis->m_iMontorNumber];
- pInfo->hMonitor = hMonitor;
- if (lprcMonitor)
- {
- pInfo->rcVirtual = *lprcMonitor;
- }
- pInfo->rcMonitor = infoEx.rcMonitor;
- pInfo->rcWork = infoEx.rcWork;
- pInfo->bPrimary = infoEx.dwFlags == MONITORINFOF_PRIMARY;
- _tcscpy_s(pInfo->szDevice, infoEx.szDevice);
- pThis->m_iMontorNumber++;
- return TRUE;
- }
- return FALSE;
- }
|