####################################################
윈도우 분석
4. 간단한 프로그램 작성
####################################################
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT('Hello Windows');
HWND hwnd;
MSG msg;
WNDCLASS wndClass;
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)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, iCmdShow);
while(GetMessage(&Message,NULL,0,0))
{
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return Message.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch(message)
{
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rect);
DrawText(hdc, TEXT("Hellow Windows"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_WCENTER);
EndPaint(hwnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
retrun 0;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}
간단한 예제에서 쓰인 Windows 함수호출 열거
LoadIcon - 프로그램에 의해 사용되는 아이콘을 로드한다
LoadCursor - 프로그램에 의해 사용되는 마우스 커서를 로드한다
GetStockObject - 그래픽개체를 알아내고 이 경우 윈도우의 배경을 칠하는데 사용되는 브러쉬이다
RegisterClass - 윈도우클래스를 등록한다
MessageBox - 메세지 상자를 출력한다
CreateWindow - 윈도우 클래스를 기반으로 윈도우를 생성한다
ShowWindow - 화면상에 윈도우를 출력한다
GetMessage - 메세지큐로부터 메세지를 알아낸다
TranslateMessage - 키보드메세지를 번역한다
DispatchMessage - 윈도우 프로시저에 메세지를 보낸다
BeginPaint - 윈도우에서 그리기 작업을 시작시킨다
GetClientRect - 윈도우의 클라이언트 영역의 크기를 알아낸다
DrawText - 문자열을 출력한다
EndPaint - 그리기작업을 끝낸다
PostQuitMessage - 메세지큐에 quit 메세지를 삽입한다
DefWindowProc - 메세지의 디폴트 처리를 수행한다
윈도우 분석
4. 간단한 프로그램 작성
####################################################
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT('Hello Windows');
HWND hwnd;
MSG msg;
WNDCLASS wndClass;
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)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, iCmdShow);
while(GetMessage(&Message,NULL,0,0))
{
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return Message.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch(message)
{
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rect);
DrawText(hdc, TEXT("Hellow Windows"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_WCENTER);
EndPaint(hwnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
retrun 0;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}
간단한 예제에서 쓰인 Windows 함수호출 열거
LoadIcon - 프로그램에 의해 사용되는 아이콘을 로드한다
LoadCursor - 프로그램에 의해 사용되는 마우스 커서를 로드한다
GetStockObject - 그래픽개체를 알아내고 이 경우 윈도우의 배경을 칠하는데 사용되는 브러쉬이다
RegisterClass - 윈도우클래스를 등록한다
MessageBox - 메세지 상자를 출력한다
CreateWindow - 윈도우 클래스를 기반으로 윈도우를 생성한다
ShowWindow - 화면상에 윈도우를 출력한다
GetMessage - 메세지큐로부터 메세지를 알아낸다
TranslateMessage - 키보드메세지를 번역한다
DispatchMessage - 윈도우 프로시저에 메세지를 보낸다
BeginPaint - 윈도우에서 그리기 작업을 시작시킨다
GetClientRect - 윈도우의 클라이언트 영역의 크기를 알아낸다
DrawText - 문자열을 출력한다
EndPaint - 그리기작업을 끝낸다
PostQuitMessage - 메세지큐에 quit 메세지를 삽입한다
DefWindowProc - 메세지의 디폴트 처리를 수행한다