win api 정복하기 1 첫번째 예제이고

빈 윈도우창 하나 뜨는건데.


그대로 따라치고 컴파일 실행하면

에러도 없고 잘되는데

창이 안보인다.


근데 작업관리자로 확인해보면

프로그램이 실행중이야.



뭐가 문제냐


#include <windows.h>


LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

HINSTANCE g_hInst;

LPCTSTR lpszClass = TEXT("First");


int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR IpszCmdParam, int nCmdShow)

{

HWND hWnd;


MSG Message;

WNDCLASS WndClass;

g_hInst = hInstance;


WndClass.cbClsExtra = 0;

WndClass.cbWndExtra = 0;

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

WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);

WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);

WndClass.hInstance = hInstance;

WndClass.lpfnWndProc = WndProc;

WndClass.lpszClassName = lpszClass;

WndClass.lpszMenuName = NULL;

WndClass.style = CS_HREDRAW | CS_VREDRAW;

RegisterClass(&WndClass);


hWnd = CreateWindow(lpszClass, lpszClass, WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,

NULL, (HMENU)NULL, hInstance, NULL);

while (GetMessage(&Message, NULL, 0, 0)) {

TranslateMessage(&Message);

DispatchMessage(&Message);

}


}


LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM IParam)

{

switch (iMessage) {

case WM_DESTROY:

PostQuitMessage(0);

return 0;

}


return (DefWindowProc(hWnd, iMessage, wParam, IParam));

}