WinAPI

WinAPI (rev. 1.5)

윈도 API, Windows API
윈도 프로그래밍, Windows Programming

보통 C언어나, CPlusPlus언어로 개발한다. 델파이,Delphi 등도 가능.
Related: MFC





표는 알파벳 순으로 정렬.

1. 통상적으로 많이 정의되는 함수

WinMain
{
각 윈도에 대해 RegisterWindowEx()로 윈도 클래스를 등록한 다음
CreateWindow()로 윈도우를 생성한다.

RegisterClassEx는 또 뭐지?
WndProc을 등록함?
}

WndProc
{

}

2. 함수의 타입??

WINAPI
WinMain()을 꾸며주는 데 뜻은?

CALLBACK
WndProc()이 LRESULT CALLBACK WndProc(...)으로 정의된다.

3. 타입

ATOM
BOOL
BYTE
COLORREF
{
색을 지정하는 타입.

정의는 이렇게 32비트 정수이다.
typedef DWORD COLORREF;

RGB는,
#define RGB(r, g, b) ((COLORREF)(((BYTE)(r) | ((WORD)((BYTE)(g)) << 8 | (((DWORD)(BYTE(b)) << 16)))
}
CONST
DWORD
HANDLE
HBRUSH
HCURSOR
HDC
HICON
HINSTANCE
HMENU
HWND
LPARAM
LPCTSTR
LPMSG
MSG와 차이는
LPVOID
LRESULT
MSG
LPMSG와 차이는
PAINTSTRUCT
PPAINTSTRUCT
PAINTSTRUCT의 포인터형
PSTR
PWNDCLASSEX
WNDCLASSEX의 포인터형
RECT
UINT
WNDCLASSEX
WNDPROC
프로시저 함수의 타입인 듯
WPARAM

4. 상수

4.1. CW_

CW_USEDEFAULT

4.2. IDI_

Identification Icon?

4.3. WM_

Window Message?

LRESULT CALLBACK WndProc(hwnd, iMsg, wParam, lParam) 함수 안의 switch(iMsg)문에서 처리하는 경우가 많은듯

WM_CREATE
WM_DESTROY
WM_PAINT

4.4. WS_

Window Style.

WS_OVERLAPPEDWINDOW
시스템 메뉴와 확대, 축소, 종료 버튼이 있는 형태

4.5. 기타

NULL

5. 함수

BeginPaint
끝나면 EndPaint
CreateWindows(..많음..)
DefWindowProc(hwnd, iMsg, wParam, lParam)
WndProc에서 switch(iMsg)로 처리하고 나서 처리하지 않은 나머지 메시지를 처리하라는 뜻으로 이것을 호출? chk
DispatchMessage
LONG DispatchMessage(CONST MSG *lpmsg);
커널에서 가져온 메시지를 wndclass에서 지정한 함수로 보내는(배달하는) 역할.
EndPaint
시작할 땐 BeginPaint
GetMessage(&msg, 0, 0, 0)
BOOL GetMessage (
LPMSG lpmsg,
HWND hWnd,
UINT uMsgFilterMin,
UINT uMsgFilterMax
);
GetStockObject(tbw)
PostQuitMessage
ShowWindow(hWnd, iCmdShow)
TextOut(hdc, x, y, "string", string length)인지 chk
TranslateMessage
BOOL TranslateMessage(CONST MSG *lpmsg);
UpdateWindow(hWnd)

6. Hungarian Notation

aka naming/convention/rule
b BOOL?
cb count of bytes?
dw DWORD?
h handle
hbr handle to background color??
hdc DC에 대한 핸들
hwnd Window에 대한 핸들
i int
l LONG?
lp
lpfn WndProc같은 함수에 대한 long pointer?
lpsz null-terminated string(asciiz)에 대한 long pointer?
msg MSG 형식의 구조체
p 포인터,pointer
ps PAINTSTRUCT 형식의 구조체
sz
u unsigned int? UINT?
w WORD?

g_ 전역 변수
m_ 멤버 변수
i_ 함수의 인자로 들어온 변수