윈도 API, Windows API
윈도 프로그래밍, Windows Programming
윈도 프로그래밍, Windows Programming
표는 알파벳 순으로 정렬.
1. 통상적으로 많이 정의되는 함수 ¶
WinMain
{
각 윈도에 대해 RegisterWindowEx()로 윈도 클래스를 등록한 다음
CreateWindow()로 윈도우를 생성한다.
{
각 윈도에 대해 RegisterWindowEx()로 윈도 클래스를 등록한 다음
CreateWindow()로 윈도우를 생성한다.
RegisterClassEx는 또 뭐지?
WndProc을 등록함?
}WndProc
{
{
}
2. 함수의 타입?? ¶
WINAPI
WinMain()을 꾸며주는 데 뜻은?
CALLBACKWndProc()이 LRESULT CALLBACK WndProc(...)으로 정의된다.
3. 타입 ¶
정의는 이렇게 32비트 정수이다.
typedef DWORD COLORREF;
RGB는,
CONST
DWORD
HANDLE
HBRUSH
HCURSOR
HDC
HICON
HINSTANCE
HMENU
HWND
LPARAM
LPCTSTR
LPMSG
LRESULT
MSG
PPAINTSTRUCT
PWNDCLASSEX
UINT
WNDCLASSEX
WNDPROC
#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와 차이는
LPVOIDLRESULT
MSG
LPMSG와 차이는
PAINTSTRUCTPPAINTSTRUCT
PAINTSTRUCT의 포인터형
PSTRPWNDCLASSEX
WNDCLASSEX의 포인터형
RECTUINT
WNDCLASSEX
WNDPROC
프로시저 함수의 타입인 듯
WPARAM4.3. WM_ ¶
Window Message?
LRESULT CALLBACK WndProc(hwnd, iMsg, wParam, lParam) 함수 안의 switch(iMsg)문에서 처리하는 경우가 많은듯
WM_CREATE
WM_DESTROY
WM_PAINT
WM_DESTROY
WM_PAINT
5. 함수 ¶
BeginPaint
DefWindowProc(hwnd, iMsg, wParam, lParam)
PostQuitMessage
ShowWindow(hWnd, iCmdShow)
TextOut(hdc, x, y, "string", string length)인지 chk
TranslateMessage
끝나면 EndPaint
CreateWindows(..많음..)DefWindowProc(hwnd, iMsg, wParam, lParam)
WndProc에서 switch(iMsg)로 처리하고 나서 처리하지 않은 나머지 메시지를 처리하라는 뜻으로 이것을 호출? chk
DispatchMessageLONG DispatchMessage(CONST MSG *lpmsg);
커널에서 가져온 메시지를 wndclass에서 지정한 함수로 보내는(배달하는) 역할.
EndPaint커널에서 가져온 메시지를 wndclass에서 지정한 함수로 보내는(배달하는) 역할.
시작할 땐 BeginPaint
GetMessage(&msg, 0, 0, 0)BOOL GetMessage (
GetStockObject(tbw)LPMSG lpmsg,
HWND hWnd,
UINT uMsgFilterMin,
UINT uMsgFilterMax
);HWND hWnd,
UINT uMsgFilterMin,
UINT uMsgFilterMax
PostQuitMessage
ShowWindow(hWnd, iCmdShow)
TextOut(hdc, x, y, "string", string length)인지 chk
TranslateMessage
BOOL TranslateMessage(CONST MSG *lpmsg);
UpdateWindow(hWnd)