cxClient = LOWORD ( lParam )这是什么意思啊?
发布网友
发布时间:2024-10-23 10:04
我来回答
共4个回答
热心网友
时间:19小时前
这几乎是SDK+C程序里,最最普遍的一段代码
在WM_SIZE消息中:lParam参数包含32位的int型整数,低16位是窗口客户区长度,高16位是高度.
LOWORD 和 HIWORD是专门提取高低字位的宏
所以cxClient和cyClient是当用户调节了窗口尺寸后的,客户区的长度和高度.
热心网友
时间:19小时前
所以cxClient和cyClient是当用户调节了窗口尺寸后的,客户区的长度和高度.
热心网友
时间:19小时前
差不多吧
热心网友
时间:19小时前
首先:当主窗口的客户区部分大小改变时,应用程序将接收到 WM_SIZE 消息。消息中包括了改变大小后的客户区的大小值,这些值包含在参数 lParam(双字类型,32位无符号整型) 中, lParam 的高字部分是客户区的高,底字部分是客户区的宽。
而
LOWORD和HIWORD就是取双字类型变量的低字和高字的两个宏变量,双字类型是32位无符号整型,字是16位无符号整型,宏定义如下:
#define LOWORD(l) ((WORD)(((DWORD_PTR)(l)) & 0xffff))
#define HIWORD(l) ((WORD)((((DWORD_PTR)(l)) >> 16) & 0xffff))
当窗口大小改变时,使用
cxClient = LOWORD ( lParam );
cyClient = HIWORD ( lParam );
获得了新客户区的大小,然后用新的大小重新调整显示内容,让它们适应新的窗口大小。