上传用户:jinxin
上传日期:2022-06-07
资源大小:2203k
文件大小:4k
源码类别:

屏幕保护

开发平台:

Visual C++

  1. // 屏幕保护程序2Dlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "屏幕保护程序2.h"
  5. #include "屏幕保护程序2Dlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CMy2Dlg dialog
  13. CMy2Dlg::CMy2Dlg(CWnd* pParent /*=NULL*/)
  14. : CDialog(CMy2Dlg::IDD, pParent)
  15. {srand((unsigned)time(NULL));
  16. //{{AFX_DATA_INIT(CMy2Dlg)
  17. // NOTE: the ClassWizard will add member initialization here
  18. //}}AFX_DATA_INIT
  19. // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
  20. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  21. }
  22. void CMy2Dlg::DoDataExchange(CDataExchange* pDX)
  23. {
  24. CDialog::DoDataExchange(pDX);
  25. //{{AFX_DATA_MAP(CMy2Dlg)
  26. // NOTE: the ClassWizard will add DDX and DDV calls here
  27. //}}AFX_DATA_MAP
  28. }
  29. BEGIN_MESSAGE_MAP(CMy2Dlg, CDialog)
  30. //{{AFX_MSG_MAP(CMy2Dlg)
  31. ON_WM_PAINT()
  32. ON_WM_QUERYDRAGICON()
  33. ON_WM_DESTROY()
  34. ON_WM_TIMER()
  35. ON_WM_LBUTTONDOWN()
  36. ON_WM_LBUTTONDBLCLK()
  37. ON_WM_KEYDOWN()
  38. //}}AFX_MSG_MAP
  39. END_MESSAGE_MAP()
  40. /////////////////////////////////////////////////////////////////////////////
  41. // CMy2Dlg message handlers
  42. BOOL CMy2Dlg::OnInitDialog()
  43. {
  44. CDialog::OnInitDialog();
  45. // Set the icon for this dialog.  The framework does this automatically
  46. //  when the application's main window is not a dialog
  47. SetIcon(m_hIcon, TRUE); // Set big icon
  48. SetIcon(m_hIcon, FALSE); // Set small icon
  49. // TODO: Add extra initialization here
  50. SetWindowPos(&wndTopMost,0,0,
  51. ::GetSystemMetrics(SM_CXSCREEN),
  52. ::GetSystemMetrics(SM_CYSCREEN),
  53. SWP_SHOWWINDOW);
  54. SetTimer(1,250,NULL);
  55. return TRUE;  // return TRUE  unless you set the focus to a control
  56. }
  57. // If you add a minimize button to your dialog, you will need the code below
  58. //  to draw the icon.  For MFC applications using the document/view model,
  59. //  this is automatically done for you by the framework.
  60. void CMy2Dlg::OnPaint() 
  61. {
  62. if (IsIconic())
  63. {
  64. CPaintDC dc(this); // device context for painting
  65. SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  66. // Center icon in client rectangle
  67. int cxIcon = GetSystemMetrics(SM_CXICON);
  68. int cyIcon = GetSystemMetrics(SM_CYICON);
  69. CRect rect;
  70. GetClientRect(&rect);
  71. int x = (rect.Width() - cxIcon + 1) / 2;
  72. int y = (rect.Height() - cyIcon + 1) / 2;
  73. // Draw the icon
  74. dc.DrawIcon(x, y, m_hIcon);
  75. }
  76. else
  77. {
  78. CDialog::OnPaint();
  79. }
  80. }
  81. // The system calls this to obtain the cursor to display while the user drags
  82. //  the minimized window.
  83. HCURSOR CMy2Dlg::OnQueryDragIcon()
  84. {
  85. return (HCURSOR) m_hIcon;
  86. }
  87. void CMy2Dlg::OnDestroy() 
  88. {
  89. CDialog::OnDestroy();
  90. // TODO: Add your message handler code here
  91. KillTimer(1);
  92. }
  93. void CMy2Dlg::OnTimer(UINT nIDEvent) 
  94. {
  95. // TODO: Add your message handler code here and/or call default
  96. CClientDC dc(this);
  97. CRect rect;
  98. GetClientRect(&rect);
  99. CPen mypen;
  100. mypen.CreatePen(PS_SOLID,1,RGB(rand()%255,rand()%255,rand()%255));
  101.     CBrush mybrush;
  102. mybrush.CreateSolidBrush(RGB(rand()%255,rand()%255,rand()%255));
  103. dc.SelectObject(&mypen);
  104. dc.SelectObject(&mybrush);
  105. dc.MoveTo(rect.right/2,0);
  106. for(int a=0;a<100;a++){
  107. dc.LineTo(rect.right-a,rect.bottom/2);
  108. dc.LineTo(rect.right/2,rect.bottom-a);
  109. dc.LineTo(a,rect.bottom/2);
  110. dc.LineTo(rect.right/2-a,0);}
  111.    // CBrush mybrush;
  112. // mybrush.CreateSolidBrush(RGB(rand()%255,rand()%255,rand()%255));
  113. dc.Rectangle(rand()%rect.right,rand()%rect.right,rand()%rect.bottom,rand()%rect.bottom);
  114.         dc.Ellipse(rand()%rect.right,rand()%rect.right,rand()%rect.bottom,rand()%rect.bottom);
  115. dc.SelectStockObject(BLACK_PEN);
  116. CDialog::OnTimer(nIDEvent);
  117. }
  118. void CMy2Dlg::OnLButtonDown(UINT nFlags, CPoint point) 
  119. {
  120. // TODO: Add your message handler code here and/or call default
  121. CDialog::EndDialog(IDOK);
  122. CDialog::OnLButtonDown(nFlags, point);
  123. }
  124. void CMy2Dlg::OnLButtonDblClk(UINT nFlags, CPoint point) 
  125. {
  126. // TODO: Add your message handler code here and/or call default
  127. CDialog::EndDialog(IDOK);
  128. CDialog::OnLButtonDblClk(nFlags, point);
  129. }
  130. void CMy2Dlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
  131. {
  132. // TODO: Add your message handler code here and/or call default
  133. CDialog::EndDialog(IDOK);
  134. CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
  135. }