BLOG ARTICLE ApiStartCode | 1 ARTICLE FOUND

  1. 2007.01.04 ApiStartCode

ApiStartCode

programming/API 2007. 1. 4. 12:41

#include <Windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
HINSTANCE g_hInst;
HWND hWndMain;
LPCTSTR lpszClass = TEXT("Class");

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdparam, int nCmdShow)
{
 HWND hWnd;
 MSG Message;
 WNDCLASS WndClass;
 g_hInst = hInstance;
 
 WndClass.cbClsExtra = 0;
 WndClass.cbWndExtra = 0;
 WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
 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);
 ShowWindow(hWnd, nCmdShow);
 
 while( GetMessage(&Message, NULL, 0, 0) )
 {
  TranslateMessage(&Message);
  DispatchMessage(&Message);
 }
 
 return (int)Message.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)
{
 HDC hdc;
 PAINTSTRUCT ps;

 switch( iMessage )
 {
 case WM_CREATE:
  {
   hWndMain = hWnd;

   return 0;
  }
 case WM_PAINT:
  {
   hdc = BeginPaint(hWnd, &ps);
   EndPaint(hWnd, &ps);

   return 0;
  }
 case WM_DESTROY:
  {
   PostQuitMessage(0);
   
   return 0;
  }
 }
 
 return (DefWindowProc(hWnd, iMessage, wParam, lParam));
}

AND