본문 바로가기

무작정 따라해보기(정리, 문제풀기)/Win32API

7. Win32 API 프로그래밍

728x90

 

'나우캠퍼스X아워즈팜'유튜브의 'Win32 API 2강. Win32 API 프로그래밍 구조 (4/5)'영상을 보고 정리한 내용입니다.

 

WndProc함수 작성방법

 

WndProc 구조

  • WM_PAINT
    클라이언트 영역을 다시 그릴 때 발생한다.(그리는 코드는 WM_PAINT 메시지 안에 있다. os에서 발생한다.)
    최초 UpdateWindow함수에 의해 발생하며 윈도우의 일부 영역을 새로 출력할 때 발생한다.
  • WM_DESTORY
    WM_QUIT 메시지 이전에 발생. 윈도우가 화면에서 사라지고 메모리에서 제거되기 직전에 보내지는 메시지이다.
  • LRESULT CALLBACK WindowProc(HWND hWnd,
        UINT message,
        WPARAM wParam,
        LPARAM lParam)
    {
        HDC hdc;
        PAINTSTRUCT ps;
        switch (message)
        {
        case WM_PAINT:
            hdc = BeginPaint(hWnd, &ps);
            //BeginPaint함수는 화면을 그리기 위한 모든 설정값을 ps에 넣어준다. 그리고 핸들을 리턴해줌

            //이곳에 화면에 그릴 코드들을 작성

            EndPaint(hWnd, &ps);
            break;
        case WM_DESTROY:

            //메모리 해제 관련 코드들을 작성한다. ex)객체 해제

            PostQuitMessage(0);
            //메시지 큐에 WM_QUIT라는 메시지를 넣어준다. 그래서 프로그램의 메모리도 해제할 수 있도록 하는 함수다.
            break;
        default:
           return DefWindowProc(hWnd, message, wParam, lParam);
           //위에서 처리되지 않은 메시지들을 처리
        }
        return 0;
    }

 

혹시 제가 잘못 이해한 부분이(잘못된 정보) 있다면 알려주시면 감사하겠습니다. :)