ScreenWnd.cpp
上传用户:liuhua
上传日期:2022-07-19
资源大小:27k
文件大小:3k
源码类别:

屏幕保护

开发平台:

Visual C++

  1. // ScreenWnd.cpp : implementation file
  2. // Download by http://www.codefans.net
  3. #include "stdafx.h"
  4. #include "screensaveprograme.h"
  5. ////ADd the *.h function
  6. #include "DrawWnd.h"
  7. //////////
  8. #include "ScreenWnd.h"
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CScreenWnd
  16. CScreenWnd::CScreenWnd()
  17. {
  18. m_ptLast=CPoint(-1,-1);
  19. }
  20. CScreenWnd::~CScreenWnd()
  21. {
  22. }
  23. BEGIN_MESSAGE_MAP(CScreenWnd, CDrawWnd)
  24. //{{AFX_MSG_MAP(CScreenWnd)
  25. ON_WM_ACTIVATE()
  26. ON_WM_ACTIVATEAPP()
  27. ON_WM_DESTROY()
  28. ON_WM_KEYDOWN()
  29. ON_WM_LBUTTONDOWN()
  30. ON_WM_MOUSEMOVE()
  31. ON_WM_NCACTIVATE()
  32. ON_WM_RBUTTONDOWN()
  33. ON_WM_SETCURSOR()
  34. ON_WM_SYSCOMMAND()
  35. ON_WM_SYSKEYDOWN()
  36. //}}AFX_MSG_MAP
  37. END_MESSAGE_MAP()
  38. /////////////////////////////////////////////////////////////////////////////
  39. // CScreenWnd message handlers
  40. BOOL CScreenWnd::Create()
  41. {
  42. CRect rect(0, 0, ::GetSystemMetrics(SM_CXSCREEN),
  43. ::GetSystemMetrics(SM_CYSCREEN));
  44. return CDrawWnd::Create(WS_EX_TOPMOST, WS_VISIBLE|WS_POPUP, rect, NULL, 
  45. 0, NULL);
  46. }
  47. void CScreenWnd::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized) 
  48. {if(nState==WA_INACTIVE) PostMessage(WM_CLOSE);
  49. CDrawWnd::OnActivate(nState, pWndOther, bMinimized);
  50. // TODO: Add your message handler code here
  51. }
  52. void CScreenWnd::OnActivateApp(BOOL bActive, HTASK hTask) 
  53. {
  54. if(!bActive) PostMessage(WM_CLOSE);
  55. CDrawWnd::OnActivateApp(bActive, hTask);
  56. // TODO: Add your message handler code here
  57. }
  58. void CScreenWnd::OnDestroy() 
  59. {
  60. PostQuitMessage(0);
  61. CDrawWnd::OnDestroy();
  62. // TODO: Add your message handler code here
  63. }
  64. void CScreenWnd::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
  65. {
  66. // TODO: Add your message handler code here and/or call default
  67. PostMessage(WM_CLOSE);
  68. CDrawWnd::OnKeyDown(nChar, nRepCnt, nFlags);
  69. }
  70. void CScreenWnd::OnLButtonDown(UINT nFlags, CPoint point) 
  71. {
  72. // TODO: Add your message handler code here and/or call default
  73. PostMessage(WM_CLOSE);
  74. CDrawWnd::OnLButtonDown(nFlags, point);
  75. }
  76. void CScreenWnd::OnMouseMove(UINT nFlags, CPoint point) 
  77. {
  78. // TODO: Add your message handler code here and/or call default
  79. if(m_ptLast==CPoint(-1,-1))m_ptLast=point;
  80. else if (m_ptLast!=point)PostMessage(WM_CLOSE);
  81. CDrawWnd::OnMouseMove(nFlags, point);
  82. }
  83. BOOL CScreenWnd::OnNcActivate(BOOL bActive) 
  84. {
  85. // TODO: Add your message handler code here and/or call default
  86. if(!bActive) return FALSE;
  87. return CDrawWnd::OnNcActivate(bActive);
  88. }
  89. void CScreenWnd::OnRButtonDown(UINT nFlags, CPoint point) 
  90. {
  91. // TODO: Add your message handler code here and/or call default
  92. CDrawWnd::OnRButtonDown(nFlags, point);
  93. }
  94. BOOL CScreenWnd::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
  95. {
  96. // TODO: Add your message handler code here and/or call default
  97. SetCursor(NULL);
  98. return CDrawWnd::OnSetCursor(pWnd, nHitTest, message);
  99. }
  100. void CScreenWnd::OnSysCommand(UINT nID, LPARAM lParam) 
  101. {
  102. // TODO: Add your message handler code here and/or call default
  103. if ((nID == SC_SCREENSAVE) || (nID == SC_CLOSE))
  104. return;
  105. CDrawWnd::OnSysCommand(nID, lParam);
  106. }
  107. void CScreenWnd::OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
  108. {
  109. // TODO: Add your message handler code here and/or call default
  110. PostMessage(WM_CLOSE);
  111. CDrawWnd::OnSysKeyDown(nChar, nRepCnt, nFlags);
  112. }