switch(iMessage) { case Msg1: 처리1; return 0; case Msg2: 처리2; return 0; case Msg3: 처리3; return 0; default: return DefWindowProc(...); }
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { switch(iMessage) { case WM_DESTROY: PostQuitMessage(0); return 0; } return(DefWindowProc(hWnd,iMessage,wParam,lParam)); }
WM_DESTROY 메시지만을 처리하고 있으며 나머지 메시지에 대해서는 DefWindowProc에게 맡긴다. WM_DESTROY 메시지는 사용자가 시스템 메뉴를 더블클릭하거나 Alt+F4를 눌러 프로그램을 끝내려고 할 때 발생하는 메시지이다. WndProc에서 이 메시지가 발생하면 PostQuitMessage 함수를 호출하여 WM_QUIT 메시지를 보낸다. WM_QUIT 메시지가 입력되면 메시지 루프의 GetMessage 함수 리턴값이 False가 되어 프로그램이 종료된다.
WM_DESTROY 이외의 메시지는 모두 DefWindowProc 함수로 전달되며 이 함수에서 디폴트 처리를 수행해 준다. WndProc은 메시지를 처리했을 경우 반드시 0을 리턴해 주어야 한다. 또한 DefWindowProc 함수가 메시지를 처리했을 경우 이 함수가 리턴한 값을 WndProc 함수가 다시 리턴해 주어야 한다.
출처: http://www.soen.kr/
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
27 | MFC의 다각형 그리기 | pjk | 2014.05.24 | 15736 |
26 | 특정 파일이 있는지 확인하는 배치 스크립트 | 운영자 | 2019.04.06 | 10671 |
25 | 세 점을 지나는 원 (3 Point Circle) | pjk | 2014.06.05 | 10340 |
24 | SetPixel() 을 사용하여 원을 그리기... | pjk | 2014.06.05 | 9758 |
23 | 두점을 지나고 반지름을 알고있을 때 원의 중심점을 찾기 | pjk | 2014.06.09 | 8117 |
22 | Visual Studio MFC에서 디버깅용 콘솔 창 띄우기 | pjk | 2014.05.24 | 7942 |
21 | ini 파일 이용하기 | makersweb | 2015.07.01 | 7625 |
20 | 체크박스가 선택되어 있는지 확인하는 GetCheck() | pjk | 2014.05.24 | 7177 |
19 | 원의 중심과 반지름을 이용한 원 그리기 | pjk | 2014.05.30 | 6827 |
18 | 시리얼 통신 (COM Port open) | pjk | 2014.11.17 | 6455 |
17 | GetUserDefaultUILanguage()함수를 이용하여 언어ID를 얻기 | makersweb | 2015.05.29 | 5703 |
16 | FindFirstFile() | pjk | 2014.07.18 | 5067 |
15 | WinCE 디버그메시지 사용법(DEBUGMSG, RETAILMSG, ERRORMSG, NKDbgPrintfW) | pjk | 2014.07.21 | 4930 |
14 | CreateFile함수로 시리얼 포트 COM10 이상 열기 | pjk | 2014.11.17 | 4882 |
13 | 키보드 입력을 처리하기 | pjk | 2014.05.24 | 4845 |
12 | MFC 대화상자 종료 메시지 호출 순서 | pjk | 2014.06.19 | 4805 |
11 | DC(Device Context) | pjk | 2014.05.24 | 4704 |
10 | DLL의 진입점 함수 | pjk | 2015.01.14 | 4659 |
9 | 쓰레드 동기화 기법 | pjk | 2014.05.24 | 4588 |
8 | 윈도우 프로그래밍에서의 데이터 형 | pjk | 2014.10.13 | 4527 |