타이머
일정 시간 간격으로 연속적으로 발생하는 메세지(주기적 갱신)
WM_TIMER보다 콜백함수가 더 정확한 시간에 호출됨.
- wParam : 타이머의 ID
- lParam : 콜백 함수가 있을 경우 콜백 함수의 번지
HANDLE SetTimer(HWND, UINT_PTR, UINT, TIMERPROC);
일정 시간 간격으로 발생하는 타이머 생성.
HWND(1): 윈도우 핸들
UINT_PTR(2) : 타이머 ID
UINT(3) : 1/1000초 단위의 시간값. (밀리초)
TIMERPROC(4) : 콜백함수(타이머 프로시저) 포인터
리턴
성공 + HWND가 NULL : 새로운 타이머를 확인할 수 있는 정수값(핸들). 이 값을 KillTimer 파라미터로 전달해야 함.
성공 + HWND가 NOT NULL : 0이 아닌 정수값(핸들). nIDEvent(3번째 인수) 값을 KillTimer 파라미터로 전달해야 함.
실패 : 0
BOOL KillTimer(HWND hWnd, UINT_PTR uIDEvent);
특정 타이머를 파괴.
HWND(1) : 윈도우 핸들
UINT_PTR : 파괴할 타이머 ID
리턴 : 성공시 0이 아닌 정수값. 실패시 0
작업영역(Client Area)
BOOL GetClientRect(HWND hWnd, LPRECT lpRECT);
작업영역의 좌표(크기)를 얻는다.
HWND(1) : 윈도우 핸들
LPRECT(2) : RECT구조체의 포인터. 이 곳에 작업영역 좌표가 저장됨.
리턴 : 성공시 0이 아닌 정수값. 실패시 0
WM_SIZE
윈도우의 크기가 변하는 것을 마쳤을 때 발생(변하는 중일 때는 WM_SIZING)
- wParam : 메세지 발생 이유 플래스
값 설명 SIZE_MAXHIDE 다른 윈도우가 최대화될 때 모든 팝업 윈도우에게 전달된다. SIZE_MAXIMIZED 윈도우가 최대화되었다. SIZE_MAXSHOW 최대화되어 있던 윈도우가 복구될 때 모든 팝업 윈도우에게 전달된다. SIZE_MINIMIZED 윈도우가 최소화되었다. SIZE_RESTORED 윈도우의 크기가 변경되었다. 마우스로 경계선을 드래그하거나 시스템 메뉴의 크기 조정 항목으로 윈도우의 크기를 직접 변경할 때이다.
출처 : http://www.winapi.co.kr/reference/Message/WM_SIZE.htm
- LOWORD(lParam) : 변경된 후 윈도우 폭
- HIWORD(lParam) : 변경된 후 윈도우 높이
WM_MOVE
윈도우의 위치가 변경되자 마자 발생(위치 변경 중일 때는 WM_MOVING)
- LOWORD(lParam) : 새 x좌표
- HIWORD(lParam) : 새 y좌표
리소스
WM_COMMAND
메뉴항목 선택, Accelerator, 버튼, 에디트 박스 등의 컨트롤이 부모 윈도우로 통지메세지 보낼 때도 발생.
- LOWORD(wParam) : 메뉴, Accellerator, 컨트롤 등의 ID
- HIWORD(wParam) : 컨트롤이 보내는 통지 메세지, 메뉴는 0, Accelerator는 1
- lParam : 컨트롤의 윈도우 핸들
※ 메뉴추가 시 윈도우 클래스에 다음과 같이 입력
WndClass. lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);
'컴퓨터 공부 > Win32 API 프로그래밍' 카테고리의 다른 글
[스터디] 윈도우즈 API 정복1 - 8장 대화상자. (0) | 2009.04.30 |
---|---|
[4월 29일 3교시] 리소스2 + 그래픽1 (0) | 2009.04.29 |
[4월 29일 1교시] 입력1 (0) | 2009.04.29 |
[4월 28일 3교시] 출력(DC) (0) | 2009.04.28 |
[4월 28일 2교시] WinMain 기본 프로그램 분석2 (0) | 2009.04.28 |