[API] 기초 코드

simpled 2013.06.23 15:13 조회 수 : 9323

/*

   2011년 03월 19일 (토)

   Windows API WIn32 Project 의 기초 코드를 최대한 줄인 게시글입니다.

   API의 기본구조는 C Language 이지만, 사용 파일은 CPP입니다.

  

   VCC 2008  > Win32 프로젝트  > ALT+F7  >  구성 속성(탭)  >  C/C++(탭)

   >  미리 컴파일된 헤더  >  미리 컴파일된 헤더 만들기/사용  >  미리 컴파일된 헤더 사용 안함

 

   을 선택해 주시기 바랍니다.   

*/

 

#include <windows.h>

 

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

 

int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) {

   MSG msg;

   WNDCLASS wcex;

 

   wcex.style = CS_HREDRAW | CS_VREDRAW;

   wcex.lpfnWndProc = WndProc;

   wcex.cbClsExtra = 0;

   wcex.cbWndExtra = 0;

   wcex.hInstance = hInstance;

   wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);

   wcex.hCursor = LoadCursor(NULL, IDC_ARROW);

   wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);

   wcex.lpszMenuName = NULL;

   wcex.lpszClassName = TEXT("2011.03.19");

   RegisterClass(&wcex);

   HWND hWnd;

 

   hWnd = CreateWindow( TEXT("2011.03.19"), TEXT("Default"), WS_OVERLAPPEDWINDOW,

                        CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

 

   if (!hWnd){ return 0; }

   ShowWindow(hWnd, nCmdShow);

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

      TranslateMessage(&msg);

      DispatchMessage(&msg);

   }

   return (int) msg.wParam;

}

 

 

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){

   PAINTSTRUCT ps;

   HDC hdc;

   switch (message){

      case WM_PAINT:

         hdc = BeginPaint(hWnd, &ps);

         EndPaint(hWnd, &ps);

         break;

      case WM_DESTROY:

         PostQuitMessage(0);

         break;

      default:

         return DefWindowProc(hWnd, message, wParam, lParam);

   }

   return 0;

}