sswnd.cpp
上传用户:linpin
上传日期:2022-02-22
资源大小:24k
文件大小:4k
源码类别:

屏幕保护

开发平台:

Visual C++

  1. // ssWnd.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ssbase.h"
  5. #ifdef _DEBUG
  6. #define new DEBUG_NEW
  7. #undef THIS_FILE
  8. static char THIS_FILE[] = __FILE__;
  9. #endif
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CSmallWnd
  12. CSmallWnd::CSmallWnd()
  13. {
  14. m_brBk=NULL;
  15. }
  16. CSmallWnd::~CSmallWnd()
  17. {
  18. }
  19. BOOL CSmallWnd::CreateAsShow(CWnd* pParent)
  20. {
  21. LPCSTR lpszClassName;
  22. lpszClassName = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,NULL,m_brBk);
  23. CRect rect;
  24. pParent->GetClientRect(rect);
  25. return CreateEx(0, 
  26. lpszClassName, 
  27. _T(""), 
  28. WS_CHILD|WS_VISIBLE, 
  29. rect.left, 
  30. rect.top, 
  31. rect.right - rect.left, 
  32. rect.bottom - rect.top, 
  33. pParent->GetSafeHwnd(), 
  34. NULL, 
  35. NULL );
  36. }
  37. BEGIN_MESSAGE_MAP(CSmallWnd, CWnd)
  38. //{{AFX_MSG_MAP(CSmallWnd)
  39. ON_WM_CREATE()
  40. //}}AFX_MSG_MAP
  41. END_MESSAGE_MAP()
  42. /////////////////////////////////////////////////////////////////////////////
  43. // CSmallWnd message handlers
  44. /////////////////////////////////////////////////////////////////////////////
  45. int CSmallWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  46. {
  47. if (CWnd::OnCreate(lpCreateStruct) == -1)
  48. return -1;
  49. if(m_uTimeTick)
  50. SetTimer(1,m_uTimeTick,NULL);
  51. return 0;
  52. }
  53. // CFullWnd
  54. CFullWnd::CFullWnd():m_ptLast(-1,-1)
  55. {
  56. m_brBk=NULL;
  57. m_fCanQuit=FALSE;
  58. }
  59. CFullWnd::~CFullWnd()
  60. {
  61. }
  62. BOOL CFullWnd::CreateAsTop(void)
  63. {
  64. m_iWidthScreen=::GetSystemMetrics(SM_CXSCREEN);
  65. m_iHeightScreen=::GetSystemMetrics(SM_CYSCREEN);
  66. CRect rect(0, 0, m_iWidthScreen,m_iHeightScreen);
  67. LPCSTR lpszClassName;
  68. lpszClassName = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,NULL,m_brBk);
  69. return CreateEx(WS_EX_TOPMOST, 
  70. lpszClassName, 
  71. _T(""), 
  72. WS_POPUP|WS_VISIBLE, 
  73. rect.left, 
  74. rect.top, 
  75. rect.right - rect.left, 
  76. rect.bottom - rect.top, 
  77. NULL, 
  78. NULL, 
  79. NULL);
  80. }
  81. BEGIN_MESSAGE_MAP(CFullWnd, CWnd)
  82. //{{AFX_MSG_MAP(CFullWnd)
  83. ON_WM_MOUSEMOVE()
  84. ON_WM_LBUTTONDOWN()
  85. ON_WM_SYSKEYDOWN()
  86. ON_WM_SYSCOMMAND()
  87. ON_WM_RBUTTONDOWN()
  88. ON_WM_KEYDOWN()
  89. ON_WM_SETCURSOR()
  90. ON_WM_MBUTTONDOWN()
  91. ON_WM_CREATE()
  92. ON_WM_TIMER()
  93. //}}AFX_MSG_MAP
  94. END_MESSAGE_MAP()
  95. /////////////////////////////////////////////////////////////////////////////
  96. // CFullWnd message handlers
  97. void CFullWnd::OnMouseMove(UINT nFlags, CPoint point) 
  98. {
  99. if (m_ptLast == CPoint(-1,-1))
  100. m_ptLast = point;
  101. else 
  102. if (m_ptLast != point)
  103. PostMessage(WM_CLOSE);
  104. CWnd::OnMouseMove(nFlags, point);
  105. }
  106. void CFullWnd::OnLButtonDown(UINT nFlags, CPoint point) 
  107. {
  108. PostMessage(WM_CLOSE);
  109. CWnd::OnLButtonDown(nFlags, point);
  110. }
  111. void CFullWnd::OnMButtonDown(UINT nFlags, CPoint point) 
  112. {
  113. PostMessage(WM_CLOSE);
  114. CWnd::OnMButtonDown(nFlags, point);
  115. }
  116. void CFullWnd::OnRButtonDown(UINT nFlags, CPoint point) 
  117. {
  118. PostMessage(WM_CLOSE);
  119. CWnd::OnRButtonDown(nFlags, point);
  120. }
  121. void CFullWnd::OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
  122. {
  123. if(m_fCanQuit)
  124. PostMessage(WM_CLOSE);
  125. CWnd::OnSysKeyDown(nChar, nRepCnt, nFlags);
  126. }
  127. void CFullWnd::OnSysCommand(UINT nID, LPARAM lParam) 
  128. {
  129. if ((nID == SC_SCREENSAVE))
  130. return;
  131. CWnd::OnSysCommand(nID, lParam);
  132. }
  133. void CFullWnd::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
  134. {
  135. if(m_fCanQuit)
  136. PostMessage(WM_CLOSE);
  137. CWnd::OnKeyDown(nChar, nRepCnt, nFlags);
  138. }
  139. BOOL CFullWnd::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
  140. {
  141. SetCursor(NULL);
  142. return CWnd::OnSetCursor(pWnd, nHitTest, message);
  143. }
  144. int CFullWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  145. {
  146. if (CWnd::OnCreate(lpCreateStruct) == -1)
  147. return -1;
  148. if(m_uTimeTick)
  149. SetTimer(1,m_uTimeTick,NULL);
  150. return 0;
  151. }
  152. void CFullWnd::OnTimer(UINT nIDEvent) 
  153. {
  154. static int iEnter=0;
  155. if(iEnter>10)
  156. m_fCanQuit=TRUE;
  157. else
  158. iEnter++;
  159. CWnd::OnTimer(nIDEvent);
  160. }