您的位置:首页 > 其它

VC 定时提醒自己休息

2014-11-29 22:57 246 查看
VC 建立一个windows应用程序 (非对话框的),每过30分钟(可随意修改)提醒自己休息一下,非常非常简单:

// Hide.cpp : Defines the entry point for the application.

//

#include "stdafx.h"

#include "resource.h"

#define MAX_LOADSTRING 100

// Global Variables:

HINSTANCE hInst;        // current instance

TCHAR szTitle[MAX_LOADSTRING];        // The title bar text

TCHAR szWindowClass[MAX_LOADSTRING];        // The title bar text

// Foward declarations of functions included in this code module:

ATOM    MyRegisterClass(HINSTANCE hInstance);

BOOL    InitInstance(HINSTANCE, int);

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);

int APIENTRY WinMain(HINSTANCE hInstance,

                     HINSTANCE hPrevInstance,

                     LPSTR     lpCmdLine,

                     int       nCmdShow)

{

  // TODO: Place code here.

 MSG msg;

 HACCEL hAccelTable;

 // Initialize global strings

 LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);

 LoadString(hInstance, IDC_HIDE, szWindowClass, MAX_LOADSTRING);

 MyRegisterClass(hInstance);

 // Perform application initialization:

 if (!InitInstance (hInstance, nCmdShow))

 {

  return FALSE;

 }

 hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_HIDE);

 // Main message loop:

 while (GetMessage(&msg, NULL, 0, 0))

 {

  if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))

  {

   TranslateMessage(&msg);

   DispatchMessage(&msg);

  }

 }

 return msg.wParam;

}

 

//

//  FUNCTION: MyRegisterClass()

//

//  PURPOSE: Registers the window class.

//

//  COMMENTS:

//

//    This function and its usage is only necessary if you want this code

//    to be compatible with Win32 systems prior to the 'RegisterClassEx'

//    function that was added to Windows 95. It is important to call this function

//    so that the application will get 'well formed' small icons associated

//    with it.

//

ATOM MyRegisterClass(HINSTANCE hInstance)

{

 WNDCLASSEX wcex;

 wcex.cbSize = sizeof(WNDCLASSEX);

 wcex.style   = CS_HREDRAW | CS_VREDRAW;

 wcex.lpfnWndProc = (WNDPROC)WndProc;

 wcex.cbClsExtra  = 0;

 wcex.cbWndExtra  = 0;

 wcex.hInstance  = hInstance;

 wcex.hIcon   = LoadIcon(hInstance, (LPCTSTR)IDI_HIDE);

 wcex.hCursor  = LoadCursor(NULL, IDC_ARROW);

 wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);

 wcex.lpszMenuName = (LPCSTR)IDC_HIDE;

 wcex.lpszClassName = szWindowClass;

 wcex.hIconSm  = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);

 return RegisterClassEx(&wcex);

}

//

//   FUNCTION: InitInstance(HANDLE, int)

//

//   PURPOSE: Saves instance handle and creates main window

//

//   COMMENTS:

//

//        In this function, we save the instance handle in a global variable and

//        create and display the main program window.

//
#define TIME_TT 1000 * 60 *30   //定时30分钟

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)

{

   HWND hWnd;

   hInst = hInstance; // Store instance handle in our global variable

   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,

      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

   if (!hWnd)

   {

      return FALSE;

   }

   SetTimer(hWnd,1,TIME_TT,NULL);//4294967295 1000*60*5
  // ShowWindow(hWnd, nCmdShow);

 //  UpdateWindow(hWnd);

   return TRUE;

}

 

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{

 int wmId, wmEvent,flag;

 static bool flag1=0;

 PAINTSTRUCT ps;

 HDC hdc;

 TCHAR szHello[MAX_LOADSTRING];

 LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);

 switch (message)

 {

  case WM_COMMAND:

   wmId    = LOWORD(wParam);

   wmEvent = HIWORD(wParam);

   // Parse the menu selections:

   switch (wmId)

   {

    case IDM_ABOUT:

       DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);

       break;

    case IDM_EXIT:

       DestroyWindow(hWnd);

       break;

    default:

       return DefWindowProc(hWnd, message, wParam, lParam);

   }

   break;

  case WM_PAINT:

   hdc = BeginPaint(hWnd, &ps);

   // TODO: Add any drawing code here...

   RECT rt;

   GetClientRect(hWnd, &rt);

   DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER);

   EndPaint(hWnd, &ps);

   break;

  case WM_DESTROY:

   PostQuitMessage(0);

   break;

  case WM_TIMER:

   KillTimer(hWnd,1);  

   flag = MessageBox(hWnd,"休息,休息一会儿...","亲",MB_YESNO);

   if(IDYES == flag){

    SetTimer(hWnd,1,TIME_TT,NULL);

   }else if(IDNO == flag){

    PostQuitMessage(0);

   }//*/

    break;
  default:

   return DefWindowProc(hWnd, message, wParam, lParam);

   }

   return 0;

}

// Mesage handler for about box.

LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)

{

 switch (message)

 {

  case WM_INITDIALOG:

    return TRUE;

  case WM_COMMAND:

   if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)

   {

    EndDialog(hDlg, LOWORD(wParam));

    return TRUE;

   }

   break;

 }

    return FALSE;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: