#include <windows.h>

LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 

     LPSTR lpszCmdLine, int nCmdShow)

{

HWND     hwnd;

MSG msg;

WNDCLASS WndClass;  


WndClass.style = CS_HREDRAW | CS_VREDRAW;

WndClass.lpfnWndProc = WndProc;      

WndClass.cbClsExtra = 0;      

WndClass.cbWndExtra = 0;      

WndClass.hInstance = hInstance;      

WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);

WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);   

WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);   

WndClass.lpszMenuName = NULL;      

WndClass.lpszClassName = "Window Class 1";   

RegisterClass(&WndClass);      


hwnd = CreateWindow("Window Class 1",

"Window Title Name",

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,   

CW_USEDEFAULT,   

270,   

400,   

NULL,   

NULL,   

hInstance,   

NULL    

);

ShowWindow(hwnd, nCmdShow);

UpdateWindow(hwnd);

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

{

TranslateMessage(&msg);   

DispatchMessage(&msg);   

}   

return (int)msg.wParam;

}


LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, 

WPARAM wParam, LPARAM lParam)     

{

HDC hdc;

RECT rect;

PAINTSTRUCT ps;

HBRUSH hBrush, oldBrush;


switch (iMsg)

{

case WM_CREATE:

break;

case WM_PAINT:

hdc = BeginPaint(hwnd, &ps);

rect.left = 100;

rect.top  = 0;

rect.right = 150;

rect.bottom = 120;

Rectangle(hdc, 100, 0, 150, 120);

DrawText(hdc, "위쪽", 4, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);

rect.left = 50;

rect.top  = 0;

rect.right = 100;

rect.bottom = 350;

Rectangle(hdc, 50, 120, 100, 240);

DrawText(hdc, "왼쪽", 4, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);

rect.left = 150;

rect.top  = 110;

rect.right = 200;

rect.bottom = 240;

Rectangle(hdc, 150, 120, 200, 240);

DrawText(hdc, "오른쪽", 6, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);

rect.left = 50;

rect.top  = 180;

rect.right = 200;

rect.bottom = 400;

Rectangle(hdc, 100, 240, 150, 350);

DrawText(hdc, "아래쪽", 6, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);

EndPaint(hwnd, &ps);

break;

case WM_KEYDOWN:

switch(wParam)

{

case VK_UP:

hdc = GetDC(hwnd);

hBrush = CreateSolidBrush(RGB(255, 0, 0));

oldBrush = (HBRUSH)SelectObject(hdc, hBrush);

Rectangle(hdc, 100, 0, 150, 120);

SelectObject(hdc, oldBrush);

DeleteObject(hBrush);

ReleaseDC(hwnd, hdc);

break;

case VK_LEFT:

hdc = GetDC(hwnd);

hBrush = CreateSolidBrush(RGB(255, 0, 0));

oldBrush = (HBRUSH)SelectObject(hdc, hBrush);

Rectangle(hdc, 50, 120, 100, 240);

SelectObject(hdc, oldBrush);

DeleteObject(hBrush);

ReleaseDC(hwnd, hdc);

break;

case VK_RIGHT:

hdc = GetDC(hwnd);

hBrush = CreateSolidBrush(RGB(255, 0, 0));

oldBrush = (HBRUSH)SelectObject(hdc, hBrush);

Rectangle(hdc, 150, 120, 200, 240);

SelectObject(hdc, oldBrush);

DeleteObject(hBrush);

ReleaseDC(hwnd, hdc);

break;

case VK_DOWN:

hdc = GetDC(hwnd);

hBrush = CreateSolidBrush(RGB(255, 0, 0));

oldBrush = (HBRUSH)SelectObject(hdc, hBrush);

Rectangle(hdc, 100, 240, 150, 350);

SelectObject(hdc, oldBrush);

DeleteObject(hBrush);

ReleaseDC(hwnd, hdc);

break;

}

case WM_KEYUP:

InvalidateRect(hwnd, NULL, true);

break;

case WM_DESTROY:

PostQuitMessage(0);

break;

return DefWindowProc(hwnd, iMsg, wParam, lParam); 

}


이거 방향키 누를때 해당되는 사각형 안에 색깔 넣어야져야하는데 눌러도 아무것도 안나타남 뭐가문제냐;