demoII2_4.cpp
上传用户:husern
上传日期:2018-01-20
资源大小:42486k
文件大小:4k
源码类别:

游戏

开发平台:

Visual C++

  1. // DEMOII2_4.CPP - A complete windows program with a slighty
  2. // different main event loop
  3. // INCLUDES ///////////////////////////////////////////////
  4. #define WIN32_LEAN_AND_MEAN  // just say no to MFC
  5. #include <windows.h>   // include all the windows headers
  6. #include <windowsx.h>  // include useful macros
  7. #include <stdio.h>     
  8. #include <math.h>
  9. // DEFINES ////////////////////////////////////////////////
  10. // defines for windows 
  11. #define WINDOW_CLASS_NAME "WINCLASS1"
  12. // GLOBALS ////////////////////////////////////////////////
  13. // FUNCTIONS //////////////////////////////////////////////
  14. LRESULT CALLBACK WindowProc(HWND hwnd, 
  15.     UINT msg, 
  16.                             WPARAM wparam, 
  17.                             LPARAM lparam)
  18. {
  19. // this is the main message handler of the system
  20. PAINTSTRUCT ps; // used in WM_PAINT
  21. HDC hdc; // handle to a device context
  22. // what is the message 
  23. switch(msg)
  24. {
  25. case WM_CREATE: 
  26.         {
  27. // do initialization stuff here
  28.         // return success
  29. return(0);
  30. } break;
  31. case WM_PAINT: 
  32. {
  33. // simply validate the window
  34. hdc = BeginPaint(hwnd,&ps);  
  35. // you would do all your painting here
  36.         EndPaint(hwnd,&ps);
  37.         // return success
  38. return(0);
  39.     } break;
  40. case WM_DESTROY: 
  41. {
  42. // kill the application, this sends a WM_QUIT message 
  43. PostQuitMessage(0);
  44.         // return success
  45. return(0);
  46. } break;
  47. default:break;
  48.     } // end switch
  49. // process any messages that we didn't take care of 
  50. return (DefWindowProc(hwnd, msg, wparam, lparam));
  51. } // end WinProc
  52. // WINMAIN ////////////////////////////////////////////////
  53. int WINAPI WinMain( HINSTANCE hinstance,
  54. HINSTANCE hprevinstance,
  55. LPSTR lpcmdline,
  56. int ncmdshow)
  57. {
  58. WNDCLASSEX winclass; // this will hold the class we create
  59. HWND    hwnd;  // generic window handle
  60. MSG    msg;  // generic message
  61. // first fill in the window class stucture
  62. winclass.cbSize         = sizeof(WNDCLASSEX);
  63. winclass.style = CS_DBLCLKS | CS_OWNDC | 
  64.                           CS_HREDRAW | CS_VREDRAW;
  65. winclass.lpfnWndProc = WindowProc;
  66. winclass.cbClsExtra = 0;
  67. winclass.cbWndExtra = 0;
  68. winclass.hInstance = hinstance;
  69. winclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  70. winclass.hCursor = LoadCursor(NULL, IDC_ARROW);
  71. winclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
  72. winclass.lpszMenuName = NULL;
  73. winclass.lpszClassName = WINDOW_CLASS_NAME;
  74. winclass.hIconSm        = LoadIcon(NULL, IDI_APPLICATION);
  75. // register the window class
  76. if (!RegisterClassEx(&winclass))
  77. return(0);
  78. // create the window
  79. if (!(hwnd = CreateWindowEx(NULL,                  // extended style
  80.                             WINDOW_CLASS_NAME,     // class
  81.     "Your Basic Window++", // title
  82.     WS_OVERLAPPEDWINDOW | WS_VISIBLE,
  83.       0,0,     // initial x,y
  84.     400,400,  // initial width, height
  85.     NULL,     // handle to parent 
  86.     NULL,     // handle to menu
  87.     hinstance,// instance of this application
  88.     NULL))) // extra creation parms
  89. return(0);
  90. // enter main event loop, but this time we use PeekMessage()
  91. // instead of GetMessage() to retrieve messages
  92. while(TRUE)
  93. {
  94.     // test if there is a message in queue, if so get it
  95. if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
  96.    { 
  97.    // test if this is a quit
  98.        if (msg.message == WM_QUIT)
  99.            break;
  100.    // translate any accelerator keys
  101.    TranslateMessage(&msg);
  102.    // send the message to the window proc
  103.    DispatchMessage(&msg);
  104.    } // end if
  105.     
  106.     // main game processing goes here
  107. // Game_Main(); // or whatever your loop is called
  108. } // end while
  109. // return to Windows like this
  110. return(msg.wParam);
  111. } // end WinMain
  112. ///////////////////////////////////////////////////////////