#include <windows.h>
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
int CALLBACK WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow) {
const wchar_t szClassName[] = L"directx11";
WNDCLASSEX wc = { };
wc.cbSize = sizeof(wc);
wc.style = CS_OWNDC;
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.lpszClassName = szClassName;
if (!RegisterClassEx(&wc)) {
MessageBox(NULL, L"RegisterClassEx Error", L"Title", MB_ICONEXCLAMATION | MB_OK);
return 1;
}
HWND hWnd = CreateWindowEx(
0, szClassName, L"Window Name",
WS_CAPTION | WS_MAXIMIZEBOX | WS_SYSMENU | WS_MINIMIZEBOX,
300, 300, 640, 480,
NULL, NULL, hInstance, NULL);
if (!hWnd) {
MessageBox(NULL, L"hWnd Error", L"Title", MB_ICONEXCLAMATION | MB_OK);
return 1;
}
ShowWindow(hWnd, SW_SHOW);
UpdateWindow(hWnd);
MSG msg = { 0 };
BOOL result;
while ((result = GetMessage(&msg, NULL, 0, 0))) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
if (result == -1)
return -1;
return (int)msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch (uMsg) {
case WM_CLOSE: {
PostQuitMessage(69);
break;
}
case WM_CREATE: {
OutputDebugStringA("WM_CREATE\n");
break;
}
case WM_SIZE: {
OutputDebugStringA("WM_SIZE\n");
break;
}
case WM_MOVE: {
OutputDebugStringA("WM_MOVE\n");
break;
}
case WM_PAINT: {
OutputDebugStringA("WM_PAINT\n");
break;
}
case WM_ACTIVATEAPP: {
OutputDebugStringA("WM_ACTIVATEAPP\n");
break;
}
case WM_DESTROY: {
OutputDebugStringA("WM_DESTROY\n");
break;
}
default: {
//OutputDebugStringA("default\n");
break;
}
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
/*
run:
WM_CREATE
WM_ACTIVATEAPP
WM_SIZE
WM_MOVE
WM_PAINT
WM_ACTIVATEAPP
WM_ACTIVATEAPP
WM_MOVE
WM_MOVE
WM_MOVE
WM_MOVE
WM_MOVE
WM_MOVE
WM_MOVE
WM_ACTIVATEAPP
*/