www.gusucode.com > VC++自制全屏的屏幕保护模块-源码程序 > VC++自制全屏的屏幕保护模块-源码程序\code\ScreenSavePrograme.cpp
//Download by http://www.NewXing.com // ScreenSavePrograme.cpp : Defines the class behaviors for the application. // #include "stdafx.h" #include "ScreenSavePrograme.h" #include "ScreenSaveProgrameDlg.h" /////////////// /////// #include "drawWnd.h" #include "screenwnd.h" /////////// #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CScreenSaveProgrameApp BEGIN_MESSAGE_MAP(CScreenSaveProgrameApp, CWinApp) //{{AFX_MSG_MAP(CScreenSaveProgrameApp) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG ON_COMMAND(ID_HELP, CWinApp::OnHelp) END_MESSAGE_MAP() /////////////MY codes start here/////// TCHAR szConfig[]=_T("Config"); ///////////// ///////////////////////////////////////////////////////////////////////////// // CScreenSaveProgrameApp construction CScreenSaveProgrameApp::CScreenSaveProgrameApp() { // TODO: add construction code here, // Place all significant initialization in InitInstance } ///////////////////////////////////////////////////////////////////////////// // The one and only CScreenSaveProgrameApp object CScreenSaveProgrameApp theApp; ///////////////////////////////////////////////////////////////////////////// // CScreenSaveProgrameApp initialization BOOL CScreenSaveProgrameApp::InitInstance() { // Standard initialization // If you are not using these features and wish to reduce the size // of your final executable, you should remove from the following // the specific initialization routines you do not need. #ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically #endif /////////////////////////// ////代码开始 SetRegistryKey(_T("MFC Screen Savers Inc.")); if (__argc == 1 || MatchOption(__argv[1], _T("c"))) DoConfig(); else if (MatchOption(__argv[1], _T("p"))) { CWnd* pParent = CWnd::FromHandle((HWND)atol(__argv[2])); ASSERT(pParent != NULL); CDrawWnd* pWnd = new CDrawWnd(); CRect rect; pParent->GetClientRect(&rect); pWnd->Create(NULL, WS_VISIBLE|WS_CHILD, rect, pParent, NULL); m_pMainWnd = pWnd; return TRUE; } else if (MatchOption(__argv[1], _T("s"))) { CScreenWnd* pWnd = new CScreenWnd; pWnd->Create(); m_pMainWnd = pWnd; return TRUE; } return FALSE; } BOOL CScreenSaveProgrameApp::MatchOption(LPTSTR lpsz, LPTSTR lpszOption) { if (lpsz[0] == '-' || lpsz[0] == '/') lpsz++; if (lstrcmpi(lpsz, lpszOption) == 0) return TRUE; return FALSE; } void CScreenSaveProgrameApp::DoConfig() { CScreenSaveProgrameDlg dlg; dlg.m_nSpeed = GetProfileInt(szConfig, _T("Speed"), 100); m_pMainWnd = &dlg; if (dlg.DoModal() == IDOK) { WriteProfileInt(szConfig, _T("Speed"), dlg.m_nSpeed); } }