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

多显示器编程

开发平台:

Visual C++

  1. #pragma once
  2. //////////////////////////////////////////////////
  3. // CMonitor - wrapper to Win32 multi-monitor API
  4. //
  5. // Author: Donald Kackman
  6. // Email:  don@itsEngineering.com
  7. // Copyright 2002, Donald Kackman
  8. //
  9. // You may freely use or modify this code provided this
  10. // Copyright is included in all derived versions.
  11. //
  12. ///////////////////////////////////////////////////
  13. //
  14. //David Campbell's article
  15. //How to Exploit Multiple Monitor Support in Memphis and Windows NT 5.0
  16. //is very helpful for multimonitor api calls
  17. //http://www.microsoft.com/msj/defaultframe.asp?page=/msj/0697/monitor/monitor.htm&nav=/msj/0697/newnav.htm
  18. //
  19. //include multimon.h here to get the types
  20. //multimon.cpp includes this with the COMPILESTUBS define to get the implementations
  21. //this is only necessary if the app is supporting win95
  22. #if WINVER < 0x0500
  23. #include "multimon.h"
  24. #endif // WINVER < 0x0500
  25. // CMonitor 
  26. class CMonitor : public CObject
  27. {
  28. public:
  29. //construction destruction
  30. CMonitor();
  31. CMonitor( const CMonitor& monitor );
  32. virtual ~CMonitor();
  33. //operations
  34. void Attach( const HMONITOR hMonitor );
  35. HMONITOR Detach();
  36. void ClipRectToMonitor( LPRECT lprc, const BOOL UseWorkAreaRect = FALSE ) const;
  37. void CenterRectToMonitor( LPRECT lprc, const BOOL UseWorkAreaRect = FALSE ) const;
  38. void CenterWindowToMonitor( CWnd* const pWnd, const BOOL UseWorkAreaRect = FALSE ) const;
  39. HDC CreateDC() const;
  40. //properties
  41. void GetMonitorRect( LPRECT lprc ) const;
  42. void GetWorkAreaRect( LPRECT lprc ) const;
  43. void GetName( CString& string ) const;
  44. int GetBitsPerPixel() const;
  45. BOOL IsOnMonitor( const POINT pt ) const;
  46. BOOL IsOnMonitor( const CWnd* pWnd ) const;
  47. BOOL IsOnMonitor( const LPRECT lprc ) const;
  48. BOOL IsPrimaryMonitor() const;
  49. BOOL IsMonitor() const;
  50. //operators
  51. operator HMONITOR() const
  52. {
  53. return this == NULL ? NULL : m_hMonitor;
  54. }
  55. BOOL operator ==( const CMonitor& monitor ) const
  56. {
  57. return m_hMonitor == (HMONITOR)monitor;
  58. }
  59. BOOL operator !=( const CMonitor& monitor ) const
  60. {
  61. return !( *this == monitor );
  62. }
  63. void operator =( const CMonitor& monitor ) 
  64. {
  65. m_hMonitor = (HMONITOR)monitor;
  66. }
  67. private:
  68. HMONITOR m_hMonitor;
  69. };