Monitors.h
上传用户:maidou0901
上传日期:2008-10-19
资源大小:68k
文件大小:2k
源码类别:

多显示器编程

开发平台:

Visual C++

  1. #pragma once
  2. //this is only necessary if the app is supporting win95
  3. #if WINVER < 0x0500
  4. #include "multimon.h"
  5. #endif // WINVER < 0x0500
  6. class CMonitor;
  7. // CMonitors command target
  8. class CMonitors : public CObject
  9. {
  10. public:
  11. CMonitors();
  12. virtual ~CMonitors();
  13. CMonitor GetMonitor( const int index ) const;
  14. #if _MFC_VER >= 0x0700
  15. int GetCount() const { return (int)m_MonitorArray.GetCount(); } 
  16. #else
  17. int GetCount() const { return (int)m_MonitorArray.GetSize(); } 
  18. #endif
  19. //static members
  20. static CMonitor GetNearestMonitor( const LPRECT lprc );
  21. static CMonitor GetNearestMonitor( const POINT pt );
  22. static CMonitor GetNearestMonitor( const CWnd* pWnd );
  23. static BOOL IsOnScreen( const POINT pt );
  24. static BOOL IsOnScreen( const CWnd* pWnd );
  25. static BOOL IsOnScreen( const LPRECT lprc );
  26. static void GetVirtualDesktopRect( LPRECT lprc );
  27. static BOOL IsMonitor( const HMONITOR hMonitor );
  28. static CMonitor GetPrimaryMonitor();
  29. static BOOL AllMonitorsShareDisplayFormat();
  30. static int GetMonitorCount();
  31. private:
  32. CObArray m_MonitorArray;
  33. typedef struct tagMATCHMONITOR
  34. {
  35. HMONITOR target;
  36. BOOL foundMatch;
  37. } MATCHMONITOR, *LPMATCHMONITOR;
  38. static BOOL CALLBACK FindMatchingMonitorHandle(
  39. HMONITOR hMonitor,  // handle to display monitor
  40. HDC hdcMonitor,     // handle to monitor DC
  41. LPRECT lprcMonitor, // monitor intersection rectangle
  42. LPARAM dwData       // data
  43. );
  44. typedef struct tagADDMONITOR
  45. {
  46. CObArray* pMonitors;
  47. int currentIndex;
  48. } ADDMONITOR, *LPADDMONITOR;
  49. static BOOL CALLBACK AddMonitorsCallBack(
  50. HMONITOR hMonitor,  // handle to display monitor
  51. HDC hdcMonitor,     // handle to monitor DC
  52. LPRECT lprcMonitor, // monitor intersection rectangle
  53. LPARAM dwData       // data
  54. );
  55. };