'''윈도 API, Windows API''' '''윈도 프로그래밍, Windows Programming''' 보통 [[C언어]]나, [[CPlusPlus언어]]로 개발한다. [[델파이,Delphi]] 등도 가능. Related: [[MFC]] Sub: [[Win16API]] [[Win32API]] [[Win64API]] [[GDI_Object]] [[DC,device_context]] { [[HDC]] } ---- [[TableOfContents]] 표는 알파벳 순으로 정렬. = 통상적으로 많이 정의되는 함수 = WinMain { 각 윈도에 대해 RegisterWindowEx()로 윈도 클래스를 등록한 다음 CreateWindow()로 윈도우를 생성한다. RegisterClassEx는 또 뭐지? WndProc을 등록함? } WndProc { } = 함수의 타입?? = WINAPI WinMain()을 꾸며주는 데 뜻은? CALLBACK WndProc()이 LRESULT CALLBACK WndProc(...)으로 정의된다. = 타입 = 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 = 상수 = == CW_ == CW_USEDEFAULT == IDI_ == Identification Icon? == WM_ == Window Message? LRESULT CALLBACK WndProc(hwnd, iMsg, wParam, lParam) 함수 안의 switch(iMsg)문에서 처리하는 경우가 많은듯 WM_CREATE WM_DESTROY WM_PAINT == WS_ == Window Style. WS_OVERLAPPEDWINDOW 시스템 메뉴와 확대, 축소, 종료 버튼이 있는 형태 == 기타 == NULL = 함수 = 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) = Hungarian Notation = ||cb || ||h ||handle || ||hbr ||handle to background color?? || ||i ||int || ||lpfn ||WndProc같은 함수에 대한 long pointer? || ||lpsz ||asciiz에 대한 long pointer? || ||sz ||