现在的位置: 首页 > 综合 > 正文

学习LOWORD、 HIWORD、LOBYTE、HIBYTE

2013年12月22日 ⁄ 综合 ⁄ 共 479字 ⁄ 字号 评论关闭

对消息的处理中我们经常需要将WPARAM或LPARAM等32位数据(DWORD)分解成两个16位数据(WORD),例如:

LPARAM lParam;
WORD loValue = LOWORD(lParam);///取低16位
WORD hiValue = HIWORD(lParam);///取高16位

  对于16位的数据(WORD)我们可以用同样的方法分解成高低两个8位数据(BYTE),例如:

WORD wValue;
BYTE loValue = LOBYTE(wValue);///取低8位

BYTE hiValue = HIBYTE(wValue);///取高8位

定义代码如下:

#define LOWORD(l)           ((WORD)(((DWORD_PTR)(l)) & 0xffff))
#define HIWORD(l)           ((WORD)((((DWORD_PTR)(l)) >> 16) & 0xffff))
#define LOBYTE(w)           ((BYTE)(((DWORD_PTR)(w)) & 0xff))
#define HIBYTE(w)           ((BYTE)((((DWORD_PTR)(w)) >> 8) & 0xff))

抱歉!评论已关闭.