WINAPI - 소스분석 첫번째
#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 lpszCmdParam, int nCmdShow)
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
g_hInst = hInstance;
/*
윈도우
클래스를
등록하는
프로그램의
번호이며 WinMain
의
인수로
전달
된 hInstance
값을
그대로
대입*/
WndClass.cbClsExtra = 0; //
예약
영역,
사용하지
않을
경우는 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);
//
윈도우
생성
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)
{
switch(iMessage)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd, iMessage, wParam, lParam));
}
'내장형 하드웨어 > WINAPI' 카테고리의 다른 글
WINAPI - 그래픽(색상) (0) | 2011.09.08 |
---|---|
WINAPI - 그래픽(GDI 오브젝트) (0) | 2011.09.07 |
WINAPI - WM_COMMAND (0) | 2011.09.06 |
WINAPI - 리소스(메뉴 생성 첫번째) (0) | 2011.09.05 |
WINAPI - 변수 명명 법, 유니코드, 윈도우 생성 첫번째 (0) | 2011.08.18 |