기본 프로그램 제작에서도 잠깐 설명했듯이 윈도우 시스템은 메시지 방식(메시지 큐를 통하여 전달)을 이용하여 프로그램이 원하는 기능을 수행합니다. 키보드를 누르면 키보드가 눌러 졌다는 메시지(WM_KEYDOWN)가 발생하고 마우스를 움직이면 마우스가 움직였다는 메시지(WM_MOUSEMOVE)가 발생하고..... 프로그램에서는 이 메시지들을 처리해 주면 됩니다. ClassView는 이 메시지로부터 유도되는 함수를 제작해 주는(다른 기능도 많이 있다) 역할을 합니다. 즉 메시지가 발생했을 때 실행될 함수를 생성합니다.
Classview는 Visual Studio 프로그램의 View 메뉴의 부메뉴 ClassView를 선택하면 다음과 같이 툴바 형태로 나타납니다.
ClassView에서 메시지를 삽입하고자 하는 Class를 선택합니다. 메시지는 대부분 MainFrame또는 View에 삽입합니다. SDI 프로그램에서는 둘 중 어디에 삽입하여도 되나 MDI의 경우 View(View는 Mdi 창에 포함된다)가 있을 때만 실행해야 하는 메시지일 경우에는 View에 그렇지 않은 경우에는 MainFrame에 삽입합니다.
Properties에서 를 선택하면 WM_로 시작하는 메시지들이 표시가 된다. 호출되기를 원하는 메시지의 우측 공간을 더블클릭하면 해당함수가 자동으로 Class에 생성되어 해당 소스로 이동합니다.
메시지들은 차츰 익혀 가기 바라고(이름을 보면 대강 기능을 알 수 있을 것입니다)여기에서 자주 쓰는 메시지들을 대강 정리합니다.
WM_CHAR : 키보드를 눌렀다(WM_KEYDOWN메시지 발생) 떼는 순간(WM_KEYUP 메시지 발생 바로 직전)에 발생하는 메시지로 키보드의 아스키 값을 포함합니다.
WM_CLOSE : 해당 윈도우가 종료되기 직전에 발생합니다.
WM_CREATE : 해당 윈도우가 생성되기 직전에 발생합니다.
WM_DESTROY : 해당 윈도우가 종료될 때 발생합니다.
WM_INITDIALOG : 대화 상자가 생성을 마쳤을 때 발생합니다. 설정한 Class가 대화 상자일 경우만 있고 대화 상자 항목의 초기화는 여기에서 해야만 합니다.
WM_LBUTTONDBLCLK : 마우스 왼쪽 버튼을 더블클릭할 때 발생합니다.
WM_LBUTTONDOWN : 마우스 왼쪽 버튼을 누를 때 발생합니다.
WM_LBUTTONUP : 마우스 왼쪽 버튼을 뗄 때 발생합니다.
WM_MOUSEMOVE : 마우스를 움직일 때 발생합니다.
WM_SIZE : 윈도우의 크기를 변경할 때 발생합니다.
WM_TIMER : 타이머를 설정했을 경우 설정한 발생 주기 마다 발생합니다.
'Visual C++(MFC)' 카테고리의 다른 글
MFC06. 대화상자 (0) | 2022.03.07 |
---|---|
MFC05. RESOURCE (0) | 2022.03.07 |
MFC04. GUI(Graphic User Interface) (0) | 2022.03.07 |
MFC02. 기본프로그램 제작 (1) | 2022.03.07 |
MFC01. 프로그래밍에 대하여 (0) | 2022.03.07 |