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

屏幕保护

开发平台:

Visual C++

  1. // ScreenSavePrograme.cpp : Defines the class behaviors for the application.
  2. //
  3. #include "stdafx.h"
  4. #include "ScreenSavePrograme.h"
  5. #include "ScreenSaveProgrameDlg.h"
  6. ///////////////
  7. ///////
  8. #include "drawWnd.h"
  9. #include "screenwnd.h"
  10. ///////////
  11. #ifdef _DEBUG
  12. #define new DEBUG_NEW
  13. #undef THIS_FILE
  14. static char THIS_FILE[] = __FILE__;
  15. #endif
  16. /////////////////////////////////////////////////////////////////////////////
  17. // CScreenSaveProgrameApp
  18. BEGIN_MESSAGE_MAP(CScreenSaveProgrameApp, CWinApp)
  19. //{{AFX_MSG_MAP(CScreenSaveProgrameApp)
  20. // NOTE - the ClassWizard will add and remove mapping macros here.
  21. //    DO NOT EDIT what you see in these blocks of generated code!
  22. //}}AFX_MSG
  23. ON_COMMAND(ID_HELP, CWinApp::OnHelp)
  24. END_MESSAGE_MAP()
  25. /////////////MY codes start here///////
  26. TCHAR szConfig[]=_T("Config");
  27. /////////////
  28. /////////////////////////////////////////////////////////////////////////////
  29. // CScreenSaveProgrameApp construction
  30. CScreenSaveProgrameApp::CScreenSaveProgrameApp()
  31. {
  32. // TODO: add construction code here,
  33. // Place all significant initialization in InitInstance
  34. }
  35. /////////////////////////////////////////////////////////////////////////////
  36. // The one and only CScreenSaveProgrameApp object
  37. CScreenSaveProgrameApp theApp;
  38. /////////////////////////////////////////////////////////////////////////////
  39. // CScreenSaveProgrameApp initialization
  40. BOOL CScreenSaveProgrameApp::InitInstance()
  41. {
  42. // Standard initialization
  43. // If you are not using these features and wish to reduce the size
  44. //  of your final executable, you should remove from the following
  45. //  the specific initialization routines you do not need.
  46. #ifdef _AFXDLL
  47. Enable3dControls(); // Call this when using MFC in a shared DLL
  48. #else
  49. Enable3dControlsStatic(); // Call this when linking to MFC statically
  50. #endif
  51. ///////////////////////////
  52. ////代码开始
  53. SetRegistryKey(_T("MFC Screen Savers Inc."));
  54. if (__argc == 1 || MatchOption(__argv[1], _T("c")))
  55. DoConfig();
  56. else if (MatchOption(__argv[1], _T("p")))
  57. {
  58. CWnd* pParent = CWnd::FromHandle((HWND)atol(__argv[2]));
  59. ASSERT(pParent != NULL);
  60. CDrawWnd* pWnd = new CDrawWnd();
  61. CRect rect;
  62. pParent->GetClientRect(&rect);
  63. pWnd->Create(NULL, WS_VISIBLE|WS_CHILD, rect, pParent, NULL);
  64. m_pMainWnd = pWnd;
  65. return TRUE;
  66. }
  67. else if (MatchOption(__argv[1], _T("s")))
  68. {
  69. CScreenWnd* pWnd = new CScreenWnd;
  70. pWnd->Create();
  71. m_pMainWnd = pWnd;
  72. return TRUE;
  73. }
  74. return FALSE;
  75. }
  76. BOOL CScreenSaveProgrameApp::MatchOption(LPTSTR lpsz, LPTSTR lpszOption)
  77. {
  78. if (lpsz[0] == '-' || lpsz[0] == '/')
  79. lpsz++;
  80. if (lstrcmpi(lpsz, lpszOption) == 0)
  81. return TRUE;
  82. return FALSE;
  83. }
  84. void CScreenSaveProgrameApp::DoConfig()
  85. {
  86. CScreenSaveProgrameDlg dlg;
  87.  
  88. dlg.m_nSpeed = GetProfileInt(szConfig, _T("Speed"), 100);
  89. m_pMainWnd = &dlg;
  90. if (dlg.DoModal() == IDOK)
  91. {
  92.  
  93. WriteProfileInt(szConfig, _T("Speed"), dlg.m_nSpeed);
  94. }
  95. }