728x90
반응형
메시지 처리의 기본 개념
메시지 : 발생된 이벤트의 종류와 정보를 전달하는 일종의 상수 값
윈도우 프로그래밍 : 가장 중요한 것은 메시지를 처리하는 것
메시지의 종류
윈도우 메시지
- WM_로 시작하는 메시지 (WM_COMMAND는 제외)
- 핸들러 함수에 매개 변수가 있어 메시지를 어떻게 처리할 것인지를 결정
컨트롤 통지 메시지
- Button, Combo Box와 같은 제어 객체나 자식 윈도우에서 부모 윈도우로 보내는 메시지
명령 메시지
- 메뉴, 툴바, 엑셀레이터 키와 같은 사용자 인터페이스 객체로부터 발생되는 WM_COMMAND 메시지
메시지 박스
API 방식 : MessageBox()
MFC 방식 : AfxMessageBox()
메시지박스 처리
AfxMessageBox(_T("안녕하세요")); //실행된다.(기본값이 있음)
AfxMessageBox(_T("삭제합니다"), MB_ICONHAND | MB_YES);
if(AfxMessageBox(T("정말로 지우겠습니까?"), MB_YESNO | MB_ICONQUESTION)==IDYES)
//지우기
else
//지우지 않기
실습1
창이 생성될 때, 메시지 박스 "창이 생성되었습니다." 띄우기
창이 파괴될 때, 메시지 박스 "창이 종료되었습니다." 띄우기
hint : OnCreate(), OnDestroy() 사용
실습2
WM_MOUSEMOVE 에 대한 메시지 처리를 하되,
왼쪽이나 오른쪽 마우스 버튼을 클릭한 상태에서 이동하면 화면의 중앙에 '마우스를 드래그 하고 있습니다.'
그냥 이동하면 화면의 중앙에 '마우스를 이동하고 있습니다.' 출력하기
CTime 클래스 : 시간, 날짜 저장하고 처리하는 클래스
현재 시스템의 날짜, 시간 얻어오기 (GetCurrentTime() : 정적 멤버함수)
- CTime time = CTime::GetCurrentTime(); //time에 현재 시스템의 날짜 시간 얻어와서 저장
- 연, 월, 일, 시, 분, 초 정수 타입으로 반환하기 (멤버함수)
int year = time.getYear();
int month = time.getMonth();
int dat = time.getDay();
int hour = time.getHour();
int minute = time.getMinute();
int second = ime.getSecond();
728x90
반응형