;메시지가 발생할 때 프로그램의 반응을 처리하는 일을 함.
운영체제에 의해 호출됨. 콜백(Call Back) 함수.
| 
 // 사용자가 메시지를 처리하는 함수. 
LRESULT CALLBACK WndProc( 
   HWND hWnd,        // 메시지를 받을 윈도우의 핸들 값. 
  UINT message,     // 메시지의 종류. 변화가 발생한 정보를 가짐. 
   WPARAM wParam,    // 부가적인 정보. 
   LPARAM lParam)    // 부가적인 정보. 
{ 
    switch (message) 
    { 
    case WM_DESTROY: 
        // 프로그램 종료 
        PostQuitMessage(0); 
        break; 
    default: 
        // 자신이 처리하지 않는 메시지들의 기본 작업을 대신 처리해주는 함수. 
        return DefWindowProc(hWnd, message, wParam, lParam); 
    } 
    return 0; 
} 
 | 
cs | 
| 
 WM_CREATE  | 
 CreateWindow 또는 CreateWindowEx 함수를 호출하면 발생. 최초 생성시에만 전달되고 윈도우가 만들어졌지만 출력되기 전 상태임.  | 
| 
 WM_DESTROY  | 
 윈도우 메모리에서 파괴될 때. CREATE 에서 메모리 할당한 걸 지운다.  | 
| 
 WM_QUIT  | 
 응용 프로그램 종료 시. PostQuitMessage 함수 호출할 때 발생.  | 
| 
 WM_KEYDOWN  | 
 키보드가 눌릴 때. press.  | 
| 
 WM_CHAR  | 
 키보드가 눌린 뒤 글자인 경우 생김. TranslateMessage가 하는 일.  | 
| 
 WM_KEYUP  | 
 키보드가 떼어질 때. release.  | 
| 
 WM_LBUTTONDOWN  | 
 마우스 왼쪽 키 눌릴 때. R, M 버전이 잇음  | 
| 
 WM_LBUTTONUP  | 
 마우스 왼쪽 키 뗄 때. R, M 버전이 있음  | 
| 
 WM_LBUTTONDBLCLK  | 
 마우스 왼쪽 키 더블클릭. R, M 버전이 있음 CS_DBLCLKS을 윈도우 클래스 스타일에 추가해야함  | 
| 
 WM_MOUSEMOVE  | 
 x = LOWORD(lParam); y = HIWORD(lParam); InvalidateRect(hWnd, NULL, TRUE); 이렇게 마우스 좌표 연동.  | 
| 
 WM_SETCURSOR  | 
 작업영역 안에서 마우스 이동  | 
| 
 WM_MOUSEWHEEL  | 
 DWORD x = HIWORD(wParam); WHEEL_DELTA 를 곱해서 쓴다.  | 
| 
 WM_PAINT  | 
 무효화로 지워졌던 영역에 대한 정보를 전달, 다시 그리기.  | 
| 
 WM_NCPAINT  | 
 비 작업영역 그릴 때 발생  | 
| 
 WM_TIMER  | 
 SetTimer() 함수를 사용하여 호출.  | 
| 
 WM_SIZE  | 
 윈도우 크기가 변경되면 처리. wParam: SIZE_~ 값 받음.  | 
| 
 WM_MOVE  | 
 윈도우 좌표 이동. lParam에 좌표가 있음. xPos = (int)(short) LOWORD(lParam); yPos = (int)(short) HIWORD(lParam);  | 
| 
 WM_COMMAND  | 
 메뉴에서 명령 항목 선택시 처리. HIWORD(wParam): 통지코드. LOWORD(wParam): 컨트롤 ID, 메뉴 ID, 엑셀러레이터 ID. lParam: 메세지를 보낸 윈도우 핸들.  | 
| 
 WM_CONTEXTMENU  | 
 우클릭 한 창과 관련된 메시지. 가로, 세로 위치 얻기. xPos = GET_X_LPARAM(lParam); yPos = GET_Y_LPARAM(lParam);  | 
| 
 WM_USER  | 
 사용자 정의 메시지. 0x0400. +1 해서 0x8000까지 쓸 수 있음 프로그램 내부에서만 쓰도록 약속됨.  | 
| 
 WM_APP  | 
 사용자 정의 메시지. 0x8000. +1 해서 0xC000 까지 쓸 수 있음. 프로그램 간의 통신을 위하도록 약속됨.  | 
'::public > 윈도우즈 응용 프로그래밍' 카테고리의 다른 글
| MessageBox (0) | 2019.09.24 | 
|---|---|
| Bitmap 복사 (0) | 2019.09.24 | 
| 윈도우 좌표 구성 (0) | 2019.09.23 | 
| GDI(Graphics Device Interface) (0) | 2019.09.23 | 
| CreateBitmap / CreateCompatibleBitmap (0) | 2019.09.23 |