WindowProcedure의 함수는 GUI에서 작동되는 함수이다.
기본적으로 While로 계속 작동 하도록 만들어 져있다.
이것은 매세지를 받아서 처리하는 함수이다.
이걸 연결하는 방법으로 Windows Class에 설정이 되게 된다.
/* The Window structure */
wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */
wincl.style = CS_DBLCLKS; /* Catch double-clicks */
wincl.cbSize = sizeof (WNDCLASSEX);
/* Use default icon and mouse-pointer */
wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL; /* No menu */
wincl.cbClsExtra = 0; /* No extra bytes after the window class */
wincl.cbWndExtra = 0; /* structure or the window instance */
/* Use Windows's default colour as the background of the window */
wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
이렇게 설정이 된다.
여기서 wincl.lpfnWndProc에서 설정이 함수를 설정이 된다.
이걸로, 기본적으로 WIndows의 GUI의 메세지를 받아서 처리할 수 있게 한다.
메세지는 운영체제에서 큐 자료형에서 받아들이는 것으로 사용자가 행동을 취하는 것을 받아들이는 매개체라고 보면 된다.
예을 들어서 사용자가 마우스를 움직이면, 움직였다는 메세지가 생성되고, 그것을 프로그램이 받아들여서 사용하는 것이다.
/* Run the message loop. It will run until GetMessage() returns 0 */
while (GetMessage (&messages, NULL, 0, 0))
{
/* Translate virtual-key messages into character messages */
TranslateMessage(&messages);
/* Send message to WindowProcedure */
DispatchMessage(&messages);
}
'연습' 카테고리의 다른 글
Android Youtube API 사용하기 - 0. 라이브러리에 추가하기 - (0) | 2015.12.02 |
---|---|
Win32 Text 출력. (0) | 2015.12.01 |
Win32 API 기본 (0) | 2015.11.29 |
GCC 전처리 출력. (0) | 2015.11.28 |
GCC에서의 Inline ASM (0) | 2015.11.27 |