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

游戏

开发平台:

Visual C++

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