본문 바로가기
프로그래밍/Windows

[Windows] CallBack 함수

by Hwan,. 2022. 5. 7.
728x90
반응형

CallBack 함수

 함수는 일반적으로 프로그래머에 의해 작성되고 호출된다. 

CallBack 함수는 일반적인 함수와 비슷하지만, 호출되는 시점이 시스템(이벤트)에 의해 결정된다는 차이가 있다.

 

윈도우 API를 공부하면 가장 처음 배우는 Window를 띄우는 코드(링크)에서도 콜백 함수인 윈도우 프로시져를 볼 수 있는데, 해당 콜백함수(프로시져)는 WinMain에서 WndClass.lpfnWndProc=WndProc; 로 WNDCLASS 구조체에 등록된 뒤에 RegisterClass(&WndClass); 되어진 이후 따로 호출하지 않는다.

 

하지만 구조체의 정보가 등록된 이후는 WinMain 내부의 메시지 루프인

while(GetMessage(&Message, NULL, 0, 0))
{
        TranslateMessage(&Message);
        DispatchMessage(&Message);
}

부분을 통해 윈도우의 메시지 큐에서 GetMessage로 가져오고, TranslateMessage를 사용해 가상 키 메시지를 문자 메시지로 변환한 뒤 DispatchMessage를 통해서 연결된 콜백 함수(프로시져)에 전달한다.

 

728x90
반응형

댓글