用SendMessage/PostMessage发送WM_SIZE消息

本文介绍了如何使用SendMessage()函数手动发送WM_SIZE消息以调整窗口大小和布局。通过MAKELONG结合宽度和高度,然后传递给SendMessage()函数,实现窗口尺寸的改变。在消息处理中,可以利用LOWORD和HIWORD来获取具体的宽度和高度信息。

一般情况下,调用MoveWindow()/SetWindowPos()函数会自动引发WM_SIZE消息,但有时候也需要手工发送该消息,使窗口调整大小和布局。

SendMessage()和PostMessage()函数发送WM_SIZE的格式是一样的,在此就只以SendMessage()函数为例。

LONG  xy;
xy =MAKELONG(x, y);
SendMessage(WM_SIZE, WPARAM(SIZE_MAXSHOW),(LPARAM)xy);

其中:x  = 宽度, y = 高度。宽度在低位,高度在高位。在发送消息时,将宽度(x),高度(y)合并成一个LONG类型。

在处理该消息中,再分解出相应的宽度和高度。宽度(x) = LOWORD(lParam),高度(y) = HIWORD(lParam)。一般不需要我们来解析,因为在OnSize()响应函数中系统已经帮我们解析出来了,即cx(宽度),cy(高度),nType = wParam。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值