home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / BC_502 / SAVER.PAK / SAVERWND.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1997-05-06  |  2.8 KB  |  137 lines

  1. // saverwnd.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "Saver.h"
  6. #include "drawwnd.h"
  7. #include "saverwnd.h"
  8.  
  9. #ifdef _DEBUG
  10. #undef THIS_FILE
  11. static char BASED_CODE THIS_FILE[] = __FILE__;
  12. #endif
  13.  
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CSaverWnd
  16.  
  17. CSaverWnd::CSaverWnd()
  18. {
  19.     m_ptLast = CPoint(-1, -1);
  20.     m_nPos = 0;
  21.     m_nStep = 1;
  22. }
  23.  
  24. CSaverWnd::~CSaverWnd()
  25. {
  26. }
  27.  
  28.  
  29. BEGIN_MESSAGE_MAP(CSaverWnd, CDrawWnd)
  30.     //{{AFX_MSG_MAP(CSaverWnd)
  31.     ON_WM_SYSCOMMAND()
  32.     ON_WM_DESTROY()
  33.     ON_WM_SETCURSOR()
  34.     ON_WM_NCACTIVATE()
  35.     ON_WM_ACTIVATE()
  36.     ON_WM_ACTIVATEAPP()
  37.     ON_WM_MOUSEMOVE()
  38.     ON_WM_LBUTTONDOWN()
  39.     ON_WM_MBUTTONDOWN()
  40.     ON_WM_RBUTTONDOWN()
  41.     ON_WM_KEYDOWN()
  42.     ON_WM_SYSKEYDOWN()
  43.     //}}AFX_MSG_MAP
  44. END_MESSAGE_MAP()
  45.  
  46.  
  47. /////////////////////////////////////////////////////////////////////////////
  48. // CSaverWnd message handlers
  49.  
  50. BOOL CSaverWnd::Create() 
  51. {
  52.     CRect rect(0, 0, ::GetSystemMetrics(SM_CXSCREEN),
  53.         ::GetSystemMetrics(SM_CYSCREEN));
  54.  
  55.     return CDrawWnd::Create(WS_EX_TOPMOST, WS_VISIBLE|WS_POPUP, rect, NULL, 
  56.         0, NULL);
  57. }
  58.  
  59. void CSaverWnd::OnSysCommand(UINT nID, LPARAM lParam) 
  60. {
  61.     if ((nID == SC_SCREENSAVE) || (nID == SC_CLOSE))
  62.         return;
  63.     CDrawWnd::OnSysCommand(nID, lParam);
  64. }
  65.  
  66. void CSaverWnd::OnDestroy() 
  67. {
  68.     PostQuitMessage(0);
  69.     CDrawWnd::OnDestroy();
  70. }
  71.  
  72. BOOL CSaverWnd::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
  73. {
  74.     SetCursor(NULL);
  75.     return TRUE;
  76. }
  77.  
  78. BOOL CSaverWnd::OnNcActivate(BOOL bActive) 
  79. {
  80.     if (!bActive)
  81.         return FALSE;
  82.     return CDrawWnd::OnNcActivate(bActive);
  83. }
  84.  
  85. void CSaverWnd::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized) 
  86. {
  87.     if (nState == WA_INACTIVE)
  88.         PostMessage(WM_CLOSE);
  89.     CDrawWnd::OnActivate(nState, pWndOther, bMinimized);
  90. }
  91.  
  92. void CSaverWnd::OnActivateApp(BOOL bActive, HTASK hTask) 
  93. {
  94.     if (!bActive)
  95.         PostMessage(WM_CLOSE);
  96.     CDrawWnd::OnActivateApp(bActive, hTask);
  97. }
  98.  
  99. void CSaverWnd::OnMouseMove(UINT nFlags, CPoint point) 
  100. {
  101.     if (m_ptLast == CPoint(-1,-1))
  102.         m_ptLast = point;
  103.     else if (m_ptLast != point)
  104.         PostMessage(WM_CLOSE);
  105.     CDrawWnd::OnMouseMove(nFlags, point);
  106. }
  107.  
  108. void CSaverWnd::OnLButtonDown(UINT nFlags, CPoint point) 
  109. {
  110.     PostMessage(WM_CLOSE);
  111.     CDrawWnd::OnLButtonDown(nFlags, point);
  112. }
  113.  
  114. void CSaverWnd::OnMButtonDown(UINT nFlags, CPoint point) 
  115. {
  116.     PostMessage(WM_CLOSE);
  117.     CDrawWnd::OnMButtonDown(nFlags, point);
  118. }
  119.  
  120. void CSaverWnd::OnRButtonDown(UINT nFlags, CPoint point) 
  121. {
  122.     PostMessage(WM_CLOSE);
  123.     CDrawWnd::OnRButtonDown(nFlags, point);
  124. }
  125.  
  126. void CSaverWnd::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
  127. {
  128.     PostMessage(WM_CLOSE);
  129.     CDrawWnd::OnKeyDown(nChar, nRepCnt, nFlags);
  130. }
  131.  
  132. void CSaverWnd::OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
  133. {
  134.     PostMessage(WM_CLOSE);
  135.     CDrawWnd::OnSysKeyDown(nChar, nRepCnt, nFlags);
  136. }
  137.