PPTtimer.cpp
上传用户:chpname
上传日期:2018-11-08
资源大小:69k
文件大小:3k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // PPTtimer.cpp : Defines the class behaviors for the application.
  2. //
  3. #include "stdafx.h"
  4. #include "PPTtimer.h"
  5. #include "PPTtimerDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CPPTtimerApp
  13. BEGIN_MESSAGE_MAP(CPPTtimerApp, CWinApp)
  14. //{{AFX_MSG_MAP(CPPTtimerApp)
  15. // NOTE - the ClassWizard will add and remove mapping macros here.
  16. //    DO NOT EDIT what you see in these blocks of generated code!
  17. //}}AFX_MSG
  18. ON_COMMAND(ID_HELP, CWinApp::OnHelp)
  19. END_MESSAGE_MAP()
  20. /////////////////////////////////////////////////////////////////////////////
  21. // CPPTtimerApp construction
  22. CPPTtimerApp::CPPTtimerApp()
  23. {
  24. // TODO: add construction code here,
  25. // Place all significant initialization in InitInstance
  26. }
  27. /////////////////////////////////////////////////////////////////////////////
  28. // The one and only CPPTtimerApp object
  29. CPPTtimerApp theApp;
  30. HANDLE hmutex;//禁止程序重复运行的互斥量句柄
  31. /////////////////////////////////////////////////////////////////////////////
  32. // CPPTtimerApp initialization
  33. BOOL CPPTtimerApp::InitInstance()
  34. {
  35. // Standard initialization
  36. // If you are not using these features and wish to reduce the size
  37. //  of your final executable, you should remove from the following
  38. //  the specific initialization routines you do not need.
  39. AfxEnableControlContainer();
  40. //设置背景颜色
  41. SetDialogBkColor(RGB(255,255,128));//RGB(4,227,88));
  42. //禁制程序重复运行
  43. char appName[MAX_PATH];
  44. char appTitle[20]="", title[17]="";
  45. int i,j;
  46. ::GetModuleFileName(NULL,appName,MAX_PATH);
  47. ::GetFileTitle(appName,appTitle,20);
  48. for(i=0;i<=20;i++)
  49. {
  50. if((appTitle[i]=='.') && (appTitle[i+1]=='e') && (appTitle[i+2]=='x') && (appTitle[i+3]=='e'))
  51. {
  52. for(j=0;j<i;j++)
  53. {
  54. title[j]=appTitle[j];
  55. }
  56. break;
  57. }
  58. }
  59. hmutex=CreateMutex(NULL,TRUE,title);
  60. if(GetLastError()==ERROR_ALREADY_EXISTS)
  61. {
  62. MessageBox(NULL,"程序已经运行了","infor",MB_OK);
  63. return FALSE;
  64. }
  65. CPPTtimerDlg dlg;
  66. m_pMainWnd = &dlg;
  67. int nResponse = dlg.DoModal();
  68. if (nResponse == IDOK)
  69. {
  70. // TODO: Place code here to handle when the dialog is
  71. //  dismissed with OK
  72. }
  73. else if (nResponse == IDCANCEL)
  74. {
  75. // TODO: Place code here to handle when the dialog is
  76. //  dismissed with Cancel
  77. }
  78. // Since the dialog has been closed, return FALSE so that we exit the
  79. //  application, rather than start the application's message pump.
  80. return FALSE;
  81. }