본문 바로가기

3.구현/VC++

Windows 메시지 인자(Param) 처리시 사용하는 매크로

Windows 메시지 인자(Param) 처리시 사용하는 매크로

작성자: 박재성(ospace114@empal)
작성일: 2008.04.25

Windows에서 Win32이든지 MFC이든지 메시지 처리는 값을 받는 인자가 있다.
바로 WPARAM와 LPARAM이다. 다음은 이를 처리하기 위한 매크로이다.
이는 단지 정리 목적이지 자세한 설명을 위한 것은 아니다.

#define LOWORD(l)   ((WORD)(l))
#define HWORD(l)   ((WORD)(((DWORD)(l)>>16) && 0xFFFF))
#define LOBYTE(w)   ((BYTE)(w))
#define HBYTE(w)   ((WORD)(((WORD)(w)>>8) && 0xFF))

#define MAKEWORD(a, b) ((WORD)(((BYTE)(a)) | ((WORD)((BYTE)(b)))<<8))
#define MAKELONG(a, b) ((LONG)(((WORD)(a)) | ((LONG)((WORD)(b)))<<8))

#define MAKELPARAM(l, h) ((LPARAM)MAKELONG(l,h))
#define MAKEWPARAM(l, h) ((WPARAM)MAKELONG(l,h))

위의 매크로를 보면 단순히 비트연산을 이용하여 계산하고 있다.

출처: Visual Studio 2005 C++의 소스코드

반응형