Window SDK 入门
1 #include<Windows.h> 2 #include<conio.h> 3 #include<memory> 4 5 #include"GameSpriteDemo.h" 6 #include"TriangleDemo.h" 7 8 #include"D3DTextDemo.h" 9 10 11 /* 12 * This is the beginning of the main function 13 * 14 * Author: ROTBLATT 15 * Date: 2015-05-31 16 * 17 */ 18 19 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, 20 WPARAM wParam, LPARAM lParam); 21 22 int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE prevInstance, 23 LPWSTR cmdLine, int cmdShow) 24 { 25 UNREFERENCED_PARAMETER(prevInstance); 26 UNREFERENCED_PARAMETER(cmdLine); 27 28 WNDCLASSEX wndClass = { 0 }; 29 //ZeroMemory(&wndClass, sizeof(wndClass)); 30 wndClass.cbSize = sizeof(WNDCLASSEX); 31 wndClass.style = CS_HREDRAW | CS_VREDRAW; 32 wndClass.lpfnWndProc = WndProc; 33 wndClass.hInstance = hInstance; 34 wndClass.hCursor = LoadCursor(NULL, IDC_ARROW); 35 wndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); 36 wndClass.lpszMenuName = NULL; 37 wndClass.lpszClassName = "DX11BookWindowClass"; 38 39 if (!RegisterClassEx(&wndClass)) 40 return -1; 41 42 RECT rc = { 0, 0, 1024, 768 }; 43 AdjustWindowRect(&rc, WS_OVERLAPPEDWINDOW, FALSE); 44 45 HWND hwnd = CreateWindow("DX11BookWindowClass", 46 "DirectX 11 Demo", 47 WS_OVERLAPPEDWINDOW | WS_VSCROLL, 48 CW_USEDEFAULT, 49 CW_USEDEFAULT, 50 rc.right - rc.left, 51 rc.bottom - rc.top, 52 NULL, NULL, hInstance, NULL); 53 54 if (!hwnd) 55 return -1; 56 57 ShowWindow(hwnd, cmdShow); 58 59 //GameSpriteDemo demo; 60 //TriangleDemo demo; 61 D3DTextDemo demo; 62 bool result = demo.Initialize(hInstance, hwnd); 63 64 if (result == false) 65 return -1; 66 67 MSG msg = { 0 }; 68 69 while (msg.message != WM_QUIT) 70 { 71 if (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) 72 { 73 TranslateMessage(&msg); 74 DispatchMessage(&msg); 75 } 76 //Update and Draw 77 demo.Update(0.0f); 78 demo.Render(); 79 } 80 demo.Shutdown(); 81 82 return static_cast<int>(msg.wParam); 83 } 84 85 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, 86 WPARAM wParam, LPARAM lParam) 87 { 88 PAINTSTRUCT paintStruct; 89 HDC hDC; 90 91 switch (message) 92 { 93 case WM_PAINT: 94 //_cprintf(""); 95 hDC = BeginPaint(hwnd, &paintStruct); 96 EndPaint(hwnd, &paintStruct); 97 break; 98 case WM_SIZE: 99 //MessageBox(NULL, "Windows Changing", "Prompt", MB_OK); 100 //RECT rect; 101 //GetClientRect(hwnd, &rect); 102 //ValidateRect(hwnd,&rect); 103 104 break; 105 106 case WM_LBUTTONDOWN: 107 MessageBox(hwnd, "LBT Clicked", "PROMPT", MB_OK); 108 break; 109 110 case WM_DESTROY: 111 PostQuitMessage(0); 112 break; 113 default: 114 return DefWindowProc(hwnd,message,wParam,lParam); 115 } 116 117 return 0; 118 }